Omalauncher Z, a fork for the Fold's inner screen
Omalauncher is an Android home screen with the look of Omarchy, and an optional Arch Linux ARM system running under proot beside your phone apps. On a foldable it had one problem I kept running into: the home screen was laid out as two 6-column pages side by side, so on the inner screen a widget could only ever take half the width.
So I forked it as Omalauncher Z: copongcopong/omalauncher, a fork of SimonSchubert/omalauncher, with three changes on main, aimed at the Fold’s inner screen.
I keep coming back to it because it takes Omarchy’s principle seriously: everything is a file you can open. Themes, wallpapers, widgets and the style live in ~/.config, and the Linux side is a real Arch install with pacman and the AUR. Changes like mine are small next to that.
That’s the fork running on the phone. The rails down the left edge,
the round buttons on the right and the arrow pad belong to So7o Z Trackpad, a
separate app of mine (app.so7o.ztrackpad) that draws its
own overlay; Omalauncher runs fine with it uninstalled.
One grid across the screen
The home grid is 12 columns spanning the whole screen. It builds as
dev.omalauncher.fold, so it installs next to the Play
release, and my widgets lay out the way they do on a desktop: a terminal
tile or a Hacker News feed across the full width, square widgets two or
three to a row.
The extra-keys bar is a file now
The terminal has a row of extra keys above the soft keyboard, because
a phone keyboard has no ctrl, no esc, no arrows. Upstream keeps those
keys in a Kotlin list, so changing them means a rebuild. I turned them
into keys.toml, watched the file the way the widgets are
watched, and the bar redraws when you save it:
height = 36
text = 12
row1 = "esc / - ; home end pgup* pgdn* copy=ctrl+insert paste=shift+insert"
row2 = "tab ctrl alt left up down right ^b=ctrl+b ^a=ctrl+a ^p=ctrl+p"A row is a line, keys left to right. A key is a name
(esc, pgup, f1, [)
or a raw evdev code. A trailing * repeats while held.
ctrl, alt and shift on their own
latch: tap for the next key, long press to lock. label=spec
draws something else on the cap, so ctrl+b here is drawn as
^b, and labels take emoji since Android falls back to the
system emoji font.
height and text are the bar’s shape in dp
and sp, so it can be shorter than upstream’s 40dp rows. A row that
doesn’t parse is named on the home screen in the same panel style errors
use, and the bar keeps the rows that last read. The whole format is in
docs/EXTRA-KEYS.md,
and the file’s own header links it, because the first thing I wanted an
agent to do with this bar was edit it without me.
One smaller change in the same code: the keyboard button moved from the bottom right of a window to the bottom left.
Source, the keys docs and the rest: https://github.com/copongcopong/omalauncher