Skip to content

omamobile-settings 0.1.0: add a native device information foundation - #526

Draft
marselnenaj wants to merge 1 commit into
derekross:mainfrom
marselnenaj:codex/settings-foundation
Draft

marselnenaj wants to merge 1 commit into
derekross:mainfrom
marselnenaj:codex/settings-foundation

Conversation

@marselnenaj

@marselnenaj marselnenaj commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Scope update in progress: This PR is being expanded from the initial device-information foundation to the complete native Settings application. The current head and screenshots below still show the initial slice. The application and its required helpers will be validated together before this PR returns to review.

What and why

Add an optional native Qt Quick Settings app, starting with its shared navigation, theme handling and a read-only About this device page. This establishes the application foundation for adding individual native settings pages in subsequent contributions.

Available in this PR

  • Settings home: a mobile layout with a search field that filters the implemented entries.
  • About this device: model, OS, kernel, architecture, memory, root-filesystem capacity and available Omarchy, mobile-shell and Settings versions.
  • Navigation and launching: a Back button, a desktop launcher entry, direct --page about opening, and repeat launches routed to the existing window through session D-Bus.
  • Theme integration: current Omarchy colors update live; surface corners follow the compositor's theme rounding.

The implemented routes are Settings home and About. The existing Omarchy menu supplies the other settings while native network, personalization and application-management pages are contributed separately.

Screenshots

Actual application QML from commit 001d879, rendered at 420 × 900 with a dark fixture theme and the built-in neutral preview data.

Settings home About this device
Settings home with search and the About entry About page with neutral preview device, memory, storage and version information

Try the preview

From the repository checkout, with the package's declared Qt build dependencies installed:

cd packages/omamobile-settings
bin/build
build/omamobile-settings --preview

Use build/omamobile-settings --preview --page about to open the About page directly. --preview uses neutral device information; a normal launch reads the local system's information.

Device and build

  • Phone: None for this extracted application; validation ran locally on native ARM64 Linux with Qt6.12.0.
  • Kernel release: Not applicable to this application-only change.
  • Packages changed: New omamobile-settings 0.1.0.

Checks (no phone needed)

  • tools/pr-check 025e6a24242df72394b42f5e4c46eab143a3f930 HEAD passes all seven checks.
  • Repository-wide tests/all was not run locally; upstream CI remains pending.
  • Touched package packages/omamobile-settings/test/all passes with no skipped cases.
  • The package version and commit subject contain 0.1.0.
  • The commit has an area prefix and explanatory body, with a Codex Co-Authored-By trailer and no AI sign-off.

The native application builds and its production binary's --check passes. Qt tests cover navigation, search/Back state, atomic theme replacement, resource loading, neutral About data and active-child teardown. A separately compiled entrypoint fixture exercises the normal D-Bus registration, route rejection, palette schema and repeat-launch paths on a private bus. Only its read-only DeviceInfo constructor uses neutral data, so tests do not read hardware paths or run a real package query. Installation stages exactly the executable, desktop entry, icon and license.

On the phone

  • This extracted core has not been run on a phone.
  • Physical phone UI and the normal device-information data branch remain untested here.
  • This change contains no storage/register writes or storage-guard changes.

Introduce an optional Qt Quick application with searchable, read-only device
and software information. Keep navigation, theme observation, desktop
launching and the single-instance D-Bus entrypoint together so native
settings pages can be contributed independently with their backend contracts.

Exercise navigation, atomic theme updates, resource loading, process teardown
and the D-Bus entrypoint using neutral data and a private offscreen session.
Install QtSvg in CI for the application's declared module and SVG icons.

Co-Authored-By: Codex <codex@openai.com>
@marselnenaj
marselnenaj marked this pull request as draft November 8, 2026 15:46
@derekross

Copy link
Copy Markdown
Owner

Thank you, @marselnenaj. I'll leave the full review until this is out of draft, but a few early questions now, so they don't get harder to change as it grows:

  • Size. Your first description, a foundation plus About with each settings page in its own PR, is the size I can review and test on a phone. Could you keep this PR to that, and send the network, wallpaper and app pages separately, each with the backend it calls?
  • Where it comes from. The README says it's "extracted from the existing native Settings implementation". Which one is that? If it's your own tree, a sentence saying so (and that it's your MIT code) is all I need.
  • The palette hint on D-Bus. What reads it? Nothing in the repository does yet. I'd rather add it with the change that uses it.
  • The look. It runs Qt's Material style with Omarchy's colours. The shell's own surfaces use Omarchy's components, and I'd like Settings to feel like part of Omarchy, so let's agree on that before more pages are built on it.
  • The version is in version and also hard-coded in main.cpp. Passing it in from the build would keep the two from drifting.

The About page reads only the model, OS, kernel, memory, storage and package versions, with no serials or addresses, and the screenshots use the preview data. Thank you for that. When it's ready, please mark it ready for review and add a smoke report and a screenshot from a phone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants