UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. Zer0
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 23
    • Groups 0

    Zer0

    @Zer0

    Lurked UT during initial release. Installed it on nexus 4 and 7 and used for about a month. Now I'm back with significantly more development experience and a desire to make this work for me.

    8
    Reputation
    12
    Profile views
    23
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online
    Age 39
    Website teamide.dev
    Location Missouri

    Zer0 Unfollow Follow

    Best posts made by Zer0

    • [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      Source / install: https://github.com/TeamIDE/HomeSpikev1 · License: GPL-2.0-or-later

      What it is

      HomeSpike is a fullscreen home surface for Ubuntu Touch (Lomiri) that replaces "drawer-as-default" with what most people actually expect from a phone: a wallpapered home grid you land on after unlock, swipeable pages of icons, an iOS-style dock, and an edit mode where you long-press to drag icons around or remove them. New apps you install auto-add to your last page. The Lomiri drawer is still there (the patched long-press inside it gives you an "Add to HomeSpike?" prompt), but it's no longer the first thing you see.

      It ships three placement modes so you can lay icons out the way you actually want: auto-fill (icons reflow with no gaps), snap-to-grid (place on any cell, gaps allowed), or place-anywhere (drop wherever, overlaps OK). Each mode keeps its own saved layout — switching modes never destroys the previous arrangement.

      It also fixes a fundamental gap in Lomiri's staged mode (the phone form factor): there was no "show desktop" concept at all — Lomiri's design assumed one app always fills the screen. Tapping the Ubuntu logo (BFB) or the new spread home button now reliably returns you to HomeSpike, with the running apps still alive in the background. Real multitasking with a real home screen.

      I built it because Ubuntu Touch in 2014 made a bet on "scopes as cards" replacing home screens with widgets, and that bet hasn't aged well. Every other mobile Linux shell since (Plasma Mobile, Phosh, even Android-via-Halium) has done the opposite. After daily-driving UT on a OnePlus Nord N100 and finding myself wanting somewhere to put apps in an order I chose, I stopped wishing for it and wrote it.

      How it works

      It's all QML on top of stock Lomiri — no shell fork. HomeSpike loads as a Loader inside Lomiri's own Stage.qml, replacing the original Wallpaper element. Because it lives in the lomiri process and isn't a separate application surface, it never appears in the app spread, never needs autostart, and never has a .desktop file.

      The four Lomiri files we touch (Shell.qml, Stage.qml, Stage/Spread/Spread.qml, Launcher/Drawer.qml) are shipped as full replacement copies under app/lomiri-overrides/ — install is plain backup-and-replace, no sed. Original files are kept as .orig and uninstall.sh cleanly reverts. Installer is idempotent and OTA-survivable (re-run after a system update).

      For "go home" to actually work, HomeSpike teaches the stage a new concept: a homeShown flag that promotes the HomeSpike Loader above the app delegates on demand (BFB / spread home button) and demotes it again when an app gains focus. Without this, Lomiri's staged appDelegate state insisted on rendering the focused app full-size even when minimised, hiding HomeSpike. There's a small Mir-focus-echo grace window so the previous app's lingering focus state doesn't immediately flip the overlay back off.

      HomeSpike itself reuses Lomiri's own primitives instead of reinventing: app inventory comes from AppDrawerModel (the same model the drawer uses), wallpaper comes from AccountsService.backgroundFile (the same one Settings writes when you change wallpaper), icons render with LomiriShape (same rounded-rect tile primitive). State (per-mode layouts, dock contents, hidden apps, page count, dock settings) persists to ~/.config/home-spike/home-spike.conf via Qt.labs.Settings. The Drawer→HomeSpike "add" is a file-inbox the running HomeSpike polls every 1.5 seconds — no D-Bus dance, just a file.

      Features

      Multi-page swipeable home (1–5 pages, configurable)

      Optional iOS-style dock at the bottom (max 5 apps, persistent across pages, adjustable plate height). When the dock is on, Lomiri's left launcher panel auto-collapses so HomeSpike owns the full screen.

      Three placement modes with independent saved layouts:

      Auto-fill (reflow, no gaps)

      Snap to grid (place on cells, gaps allowed, swap on collision)

      Place anywhere (drop anywhere on the page, overlaps allowed)

      Edit mode (long-press): drag-to-reorder, drag-to-edge auto-flips page, X-badge removes an icon (stays installed, just hidden from home)

      Drag between dock and grid in both directions

      True multitasking + reliable home: BFB or the spread home button always returns to HomeSpike; running apps stay alive in the background and resume instantly when re-tapped

      Home button in the right-swipe app spread — tap to return to HomeSpike without minimising each app individually

      Wallpaper inherits whatever you set in Settings → Background

      New installs auto-append to the last page (snap → first free cell; place-anywhere skips, since it's intentionally manual)

      Long-press an app in the swipe-left drawer → "Add to HomeSpike?" prompt → it appears on your home within ~2 seconds

      Per-arch portable — no qmlscene wrapper script, no arch-specific paths; HomeSpike runs inside lomiri so it picks up whatever Lomiri sees

      Tested on

      OnePlus Nord N100 (billie2), Ubuntu Touch 24.04 noble. The design is generic to Lomiri 24.04 — should work on every device on that channel. If you try it on something else, please let me know.

      How to install

      Currently distributed as a self-hosted installer (not OpenStore — see "Why not OpenStore" below). Phone connected via adb, developer mode on:

      git clone https://github.com/TeamIDE/HomeSpikev1.git
      cd HomeSpikev1
      PIN=<your-phablet-sudo-pin> ./deploy/install.sh

      To revert:

      PIN=<your-phablet-sudo-pin> ./deploy/uninstall.sh

      Why not OpenStore

      OpenStore ships Click packages, which are AppArmor-sandboxed and explicitly cannot modify system files, remount / rw, or hook into Lomiri's shell QML — i.e., every single thing that makes HomeSpike the home rather than an app you open. A confined Click version would just be "HomeSpike Launcher: an app drawer you have to tap to enter," which loses 90% of the value. So this ships as a self-hosted installer for now. A clean long-term answer is upstreaming the home-surface mechanism into Lomiri proper — I'd like to do that once the design has settled in real-world use.

      Caveats up front

      Modifies four Lomiri shell files. Read install.sh before running. Backups are made for each (.orig next to the live file); uninstall.sh restores them.

      OTA wipes overrides. Re-run install.sh after any system update. Takes a couple seconds.

      Iterating on the overrides logs you out to the greeter. Lomiri caches QML aggressively, so the dev refresh path pkills lomiri — you'll see the greeter, unlock to continue. Normal use (just running HomeSpike) doesn't restart anything.

      Removes the OpenStore-link long-press in the drawer. That gesture now goes to "Add to HomeSpike?" instead. Can be restored as a different gesture later if there's demand.

      No widget API yet. This release is the home surface itself. A widget system (with a real provider API) is the next milestone — the current QML is the scaffolding for an eventual ImGui+Lua reimplementation that'll host third-party widgets behind the same load-point.

      Source + issues

      GitHub: https://github.com/TeamIDE/HomeSpikev1

      License: GPL-2.0-or-later. No warranty. PRs welcome — especially "tested on <your device>" confirmations and Lomiri-version-drift fixes for the override copies.

      TL;DR

      "I wanted a home screen on Ubuntu Touch. UT doesn't really have one — the drawer is the default surface and there's no place to arrange icons how you want. So I wrote one. It's a QML tree loaded inside Lomiri's own Stage.qml + four small Lomiri shell-file overrides. Multi-page, dock, drag-to-reorder, three layout modes (auto-fill / snap-to-grid / place-anywhere — each with its own saved layout), long-press in the system drawer adds apps to it, spread gets a home button, BFB minimises any open app and reveals HomeSpike — true multitasking with a real home screen. Backups + uninstaller included. Source linked below."

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      Standard|220x488
      A-Z|220x488
      Categories|220x488

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @Linus67 that's fair, and that's the point, this is for the people who do want it. The whole value of open source is choice: you run it how you like, I run it how I like. Up to now everyone was locked into one default that a lot of newcomers find confusing, especially coming from Android or iPhone. This is for those folks.
      I don't really need to justify it, but a concrete example: my wife flat-out refused to use UT. The iOS style layout is for her. Something like this is exactly what gets non technical people to adopt it. Back when UT first launched I bought a Nexus 4 and 7 to run it, and the UI lost me inside a month, I went back to an iPhone. So I get being opinionated about your setup. This clearly isn't for you, and that's completely fine. It's an option, not a replacement.

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      01-home-grid-with-launcher.png 02-edit-mode.png 03-settings-layout-modes.png 04-home-with-dock.png 05-spread-home-button.png 06-drawer-add-to-homespike.png

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @Linus67 hey thanks for the feedback. i just added a system setting menu where you can turn it on and off. I just did some reading on how to get this ready for open store so that will be coming soon. also did some bug fix. v2 will have this fearure along with widgets and folders i hope. lol

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @Linus67 your welcome.

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      I made this. https://forums.ubports.com/topic/12319/release-homespike-v1.0-a-real-home-screen-for-ubuntu-touch-multi-page-dock-drag-to-reorder-three-placement-modes-true-multitasking. It has jsut the standard home screen with icon and the launcher on the left. or you can turn on the dock and get the IOS feel.

      posted in Design
      Zer0Z
      Zer0

    Latest posts made by Zer0

    • RE: I wanna go home

      @CiberSheep o joy I can post again. don't worry. watching this whole interaction has put me off on sharing here. Ill still be hacking on ubuntu touch but I wont bother you guys anymore.

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      Standard|220x488
      A-Z|220x488
      Categories|220x488

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @arubislander HomeSpike doesn't actually change app lifecycle. It's loaded inside the Lomiri shell process as the wallpaper layer (z=-2 in Stage.qml), not a separate app. Lomiri still suspends/resumes background apps by its own existing rules. any apps that are not declared background services will still "sleep" in the background.

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @Linus67 your welcome.

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @Linus67 nope. I haven't seen that

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @Linus67 hey thanks for the feedback. i just added a system setting menu where you can turn it on and off. I just did some reading on how to get this ready for open store so that will be coming soon. also did some bug fix. v2 will have this fearure along with widgets and folders i hope. lol

      posted in Design
      Zer0Z
      Zer0
    • RE: Recommendations for well-architected UT apps to study

      @kugiigi I jsut found the gitlab repo. I plan on looking them over. Thanks!

      posted in New Contributors
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @brenno.almeida Hey I'd appreciate the feedback!

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @Linus67 fair enough. im part of that 5% too and i can make UT do whatever i want. honestly i think the default ui is rough, thats why i made this. but thats just my take, not me saying everyone has to agree. its an option for people who want it. you dont and thats fine. point of UT is we each set it up how we like.

      posted in Design
      Zer0Z
      Zer0
    • RE: [Release] HomeSpike v1.0 — a real home screen for Ubuntu Touch (multi-page, dock, drag-to-reorder, three placement modes, true multitasking)

      @Linus67 that's fair, and that's the point, this is for the people who do want it. The whole value of open source is choice: you run it how you like, I run it how I like. Up to now everyone was locked into one default that a lot of newcomers find confusing, especially coming from Android or iPhone. This is for those folks.
      I don't really need to justify it, but a concrete example: my wife flat-out refused to use UT. The iOS style layout is for her. Something like this is exactly what gets non technical people to adopt it. Back when UT first launched I bought a Nexus 4 and 7 to run it, and the UI lost me inside a month, I went back to an iPhone. So I get being opinionated about your setup. This clearly isn't for you, and that's completely fine. It's an option, not a replacement.

      posted in Design
      Zer0Z
      Zer0