u/DvilSpawn

▲ 1 r/lua

I am building a CLI themed launcher that allows you to create lua based widgets and I need your help.

Hi all,

I want to preface this by saying thank you in advance for your opinions and ideas.

I am knee-deep in building, or more honestly re-building, an older Android launcher and slowly starting to make it my own. The launcher is terminal/TUI-inspired, and one feature I am exploring is a Lua-based scripting surface for user-made widgets.

The rough idea is:

Users can create small Lua scripts inside the launcher, save them locally, and expose them as launcher widgets/modules. These scripts would support a limited Re:TUI-owned API rather than full Android or Java access.

For example:

-- name = "Battery"
-- type = "widget"
-- permissions = "active-tick"

function on_resume()
    local battery = system:battery_info()
    ui:set_title("Battery")
    ui:show_text("Battery: " .. battery.percent .. "%")
    ui:show_buttons({"Refresh"})
end

function on_click(index)
    on_resume()
end

The launcher would provide APIs like:

ui:show_text(...)
ui:show_buttons(...)
prefs:get(...)
prefs:set(...)
files:read(...)
files:write(...)
system:battery_info()
system:network_state()
http:get(...)

The goal is not to expose raw Android internals, arbitrary Java, shell execution, or full filesystem access. Lua would be sandboxed, with permission metadata for sensitive APIs like network, clipboard, vibration, local files, and active ticking.

Users could paste shared scripts from Reddit/GitHub/etc. into the built-in editor, review the permissions, approve them, and run them as widgets.

My questions for Lua folks:

  1. Does Lua feel like a good fit for this kind of small reactive widget scripting?
  2. What API design mistakes should I avoid early?
  3. What would make this pleasant or unpleasant for regular users editing small scripts on a phone?
  4. Are there Lua sandboxing/runtime pitfalls I should be especially careful about?
  5. If you were writing scripts for a launcher, what helpers would you expect?

I am not trying to copy another project wholesale, but AIO Launcher’s Lua scripting gave me the initial nudge to explore this. I would love feedback from people who know Lua better than I do before I commit too hard to the shape of the API.

Thanks again.

reddit.com
u/DvilSpawn — 1 day ago

How to use app shortcuts in Re:TUI

Start with shortcut -ls <app name>

Copy the ID of the shortcut you want to use.

Use shortcut -use <ID>

It's that simple.

You can of course create aliases for your favourite shortcuts to have them at your fingertips!

u/DvilSpawn — 4 days ago

Re:T-UI Webpage is live with free Github download!

As I had mentioned before! The soul of the original project was an open sourced CLI based launcher that used to love and adore. The Launcher had given me some good memories and it is now my turn to give it back.

>The website has 2 download path, Playstore and Github.

If you just want to try the app for free and be part of the discussion please feel free to use the Github apk and Github Issues to report any bugs.

The playstore release is for those who love the app and what I have done with it and want to support me.

why two APKs, maintenance and long term plan for the projects. The backup and restore feature will allow you to transition from github version to playstore version without loosing anything at all!

The webpage is to serve as the main hub for the application. Give you answers to common issues as well as tips and tricks to use with the application.

Eventually sharable presets and preset showcase are planned for future so you can share your favourite presets with the world.

>AI Disclaimer:

This is a passion project I started because I was learning to code and AI agents now make it a breeze to review and fix codes. Is this vibe coded? Not entirely but I will admit as a beginner a lot of the code snippets are reviewed by AI agents but I manually type and compile them and review errors myself and try to fix them myself as best as I can. Is this the best way to learn to code no but I still learnt :)

re-tui.pages.dev
u/DvilSpawn — 5 days ago
▲ 3 r/RE_TUI_launcher+1 crossposts

Wallpaper auto getting it right!

I'm really glad it works haha 😆

Once more, Re:TUI creeps towards a Playstore release. I will be hosting the app on github for free and playstore as a way to purchase and support me and the app.

Re:TUI Files will be available as an add on git for no cost until it get's it's own playstore release as well.

you can read all about the app here

https://re-tui.pages.dev (WIP)

u/DvilSpawn — 6 days ago

Hi everyone!! The launcher is going to Play Store! But I need your help

I need Re:T-UI internal testers.

I was previously distributing test builds through Firebase, but the Play Store now requires real testers before the app can move forward. I would also really like direct feedback from people using the launcher on their own devices.

Join the Play Store internal test here:

Please DM me your email address and I'll add you for testing.

Important note for existing Firebase testers

I have rolled out the current Firebase build as a migration build: v6.16.3-STABLE / version code 327.

If you are currently using the Firebase APK, please back up your setup before moving to the Play Store test.

Migration steps:

  1. Update to the latest Firebase build first.
  2. Open Re:T-UI and confirm your current setup still loads.
  3. Type:settings
  4. Go to:System > Backup
  5. Save the backup file somewhere safe. It will create a .retui-backup file.
  6. Join the Play Store internal test:https://play.google.com/apps/testing/com.dvil.tui_renewed
  7. Install/update Re:T-UI from Google Play.
  8. Open Re:T-UI.
  9. Type:settings
  10. Go to:

System > Restore

  1. Select the .retui-backup file you saved.

  2. Let Re:T-UI reload, then check your theme, aliases, apps, modules, and other settings.

Please do not uninstall the Firebase build before making a backup if you care about your current setup.

If Google Play lets you update over the Firebase build, that is usually the cleanest path. If you have to uninstall first, make sure your .retui-backup file is saved somewhere outside the app before uninstalling.

What I’m looking for from testers:

- install/update problems

- backup and restore issues

- crashes

- Android version/device issues

- launcher/home screen behavior

- theme or config problems

- Termux/script/module behavior

- anything confusing for a first-time user

Thanks to everyone who tested through Firebase already. This Play Store internal test is the next step toward getting Re:T-UI properly released.

Please share with like-minded folks. I need your help to bring this project to life :)

The key metric is 12 users using the app for 14 days.

reddit.com
u/DvilSpawn — 9 days ago
▲ 17 r/RE_TUI_launcher+1 crossposts

I got halfway there and then got sidetracked, but this turned into something pretty interesting.

Re:T-UI now supports custom modules powered by Termux.

The idea is simple:

  • Termux acts as the execution layer
  • Re:T-UI acts as the UI surface

You write a script in Termux, it outputs structured text, and Re:T-UI renders it as a module.


How it works

Termux gathers data → script prints module metadata → Re:T-UI renders it

The script just needs to output specific tags like:

::title
::body
::suggest

Example: Battery Module

For a first test, I built a simple battery module.

It uses termux-battery-status (from Termux:API), parses the JSON, and outputs formatted lines.

Output format:

::title Battery
::body Level: 75%
::body Status: CHARGING
::body Health: GOOD
::body Temp: 32C
::suggest refresh | command | module -refresh battery

Re:T-UI turns that into a UI module with a refresh action.


Script

#!/data/data/com.termux/files/usr/bin/sh

INFO="$(termux-battery-status 2&gt;/dev/null)"

LEVEL="$(printf '%s\n' "$INFO" | grep '"percentage"' | cut -d: -f2 | tr -d ' ,')"
STATUS="$(printf '%s\n' "$INFO" | grep '"status"' | cut -d: -f2- | tr -d ' ",')"
HEALTH="$(printf '%s\n' "$INFO" | grep '"health"' | cut -d: -f2- | tr -d ' ",')"
TEMP="$(printf '%s\n' "$INFO" | grep '"temperature"' | cut -d: -f2 | tr -d ' ,')"

[ -z "$LEVEL" ] &amp;&amp; LEVEL="unknown"
[ -z "$STATUS" ] &amp;&amp; STATUS="unknown"
[ -z "$HEALTH" ] &amp;&amp; HEALTH="unknown"
[ -z "$TEMP" ] &amp;&amp; TEMP="unknown"

echo "::title Battery"
echo "::body Level: ${LEVEL}%"
echo "::body Status: ${STATUS}"
echo "::body Health: ${HEALTH}"
echo "::body Temp: ${TEMP}C"
echo "::suggest refresh | command | module -refresh battery"

Setup in Termux

mkdir -p ~/retui
nano ~/retui/battery.sh
chmod +x ~/retui/battery.sh
~/retui/battery.sh

Register in Re:T-UI

module -add battery termux:/data/data/com.termux/files/home/retui/battery.sh
module -refresh battery
module -show battery

Why this approach works

What I like about this:

  • Re:T-UI doesn’t need a heavy plugin runtime
  • No need to load arbitrary Android code
  • No need to support full Android widgets

Instead:

  • Termux = scripting + power
  • Re:T-UI = clean UI surface

What you can build

Anything you can script:

  • battery status
  • server health
  • weather
  • network info
  • habit tracker
  • task list
  • focus mode status
  • build/deploy status
  • Tasker-fed automation state

Notes

There were some typical Android/Termux quirks:

  • dumpsys battery wasn’t reliable on my device
  • termux-battery-status (Termux:API) worked much better

But importantly, the module contract stayed simple:

  • print ::title
  • print ::body
  • optionally print ::suggest

Status

Still rough around the edges, but the foundation is there.

Custom programmable modules in Re:T-UI are now possible.

u/DvilSpawn — 11 days ago

TUI file manger

As I was working on making file manager functions in the launcher I realised how limited it felt.. so.. uh a companion app that shares themes and fonts with the launcher. Command based file navigation with tree view of your directories.

u/DvilSpawn — 11 days ago

Output terminal expanded/minimised is now persistent and can be toggled in behaviour

You can go to themer > Behaviour > Behaviour.xml and search for "toggle". Enabling this keep your choice to have the output expanded/ minimised persistent.

reddit.com
u/DvilSpawn — 13 days ago

New release in Firebase for testing v6.16.2-STABLE (326)

Release notes

- Reworked first-run/help flow around a workstation quickstart.

- Added wallpaper-auto first personalization suggestion for new setups.

- Added explicit contacts workflow through contacts suggestions and contextual call/details/edit actions.

- Added active module suggestions for timer, music, notifications, calendar, and script-backed modules.

- Added script module metadata: ::title, ::body, and command-mode ::suggest entries.

- Fixed expanded output tray manual scrolling.

- Modules now start closed by default so first-run suggestions stay visible.

- Added close buttons for music and notification modules.

- Improved timer module chips: +5m/+15m start a timer when idle or extend the running timer.

- Reworked app drawer group tabs into a compact bottom scroll strip.

- Documented workflow aliases as the official recipe/chaining layer.

- Added automation/chaining audit docs and kept callbacks narrow/token-gated.

- Fixed internal memory inaccuracy in status windows.

reddit.com
u/DvilSpawn — 13 days ago
▲ 63 r/termux

Hi amazing Termux users,

I have been following Termux and this community for a while but I myself have not dived into it. Recently I have taken up a personal project to revive and bring back a launcher I used to love called TUI Launcher.

I have been working on this for a while now and I finally managed to get around to implementing a Termux integration coz it looked like a good fit.

I am attaching a screenshot of how you can create an alias and pass that from the input.

Now for the question:

Would you as power users find value in something like this during your day to day?

u/DvilSpawn — 16 days ago

Hello everyone! I just wanted to share this screenshot of my WIP launcher called Re-TUI (Hopeful successor to the original TUI Launcher) getting a color pick from wallpaper right for its elements!

u/DvilSpawn — 17 days ago