No description
  • QML 55.6%
  • Python 43.1%
  • CMake 1.1%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-16 23:09:15 +00:00
.forgejo/workflows fix bash 2026-08-16 20:07:57 -03:00
assets first commit 🚀 2025-09-18 15:13:10 -03:00
docs add cancel queued events 2026-08-16 18:33:09 -03:00
po first commit 🚀 2025-09-18 15:13:10 -03:00
scripts chore: release v1.7.1 2026-08-16 23:09:15 +00:00
src add cancel queued events 2026-08-16 18:33:09 -03:00
.flake8 first commit 🚀 2025-09-18 15:13:10 -03:00
.gitignore first commit 🚀 2025-09-18 15:13:10 -03:00
.isort.cfg first commit 🚀 2025-09-18 15:13:10 -03:00
.pre-commit-config.yaml format all files with pre-commit 2025-12-19 06:52:29 -03:00
.python-version first commit 🚀 2025-09-18 15:13:10 -03:00
clickable.yaml first commit 🚀 2025-09-18 15:13:10 -03:00
CMakeLists.txt first commit 🚀 2025-09-18 15:13:10 -03:00
LICENSE first commit 🚀 2025-09-18 15:13:10 -03:00
manifest.json.in first commit 🚀 2025-09-18 15:13:10 -03:00
README.md migrate to forgejo 2026-08-16 19:58:30 -03:00
snapcraft.yaml first commit 🚀 2025-09-18 15:13:10 -03:00
ut-components.apparmor - add image viewer component 2026-05-15 00:43:52 -03:00
ut-components.desktop.in first commit 🚀 2025-09-18 15:13:10 -03:00

Ubuntu Touch Components

Welcome to my personal library of components for Ubuntu Touch. The idea behind this project is to create a reusable system for backend and frontent that will allow rapid creation of Ubuntu Touch Apps.

Demo and Apps

This set of components powers the following applications in OpenStore:

Installation

Simply copy the src/qml and src/pyhton folders to your project. For convenience, a install script is supplied that you can run in your git repository

curl -s https://git.brennoflavio.com.br/brennoflavio/ut-components/raw/branch/master/scripts/install.sh | bash

QML Components

  • ActionableList: A list of items (smaller itens with title, subtitle, icon and actions) with search.
  • ActionButton: A prominent button component for primary actions, customizable.
  • AppHeader: A simplified page header component that provides back navigation and button to settings page.
  • BottomBar: A bottom navigation bar component that provides three distinct sections (left, rigth, middle buttons) for organizing actions.
  • CardList: A list of Cards (larger components with title, subtitle, icon/thumbnail) with search.
  • ConfigurationGroup: A titled container component for grouping related configuration controls.
  • Form: A form container that vertically stacks input fields and exposes a single submit button.
  • IconButton: A small circular button component that displays an icon with an optional text label below.
  • ImageViewer: A reusable image viewer with standardized zoom, panning, and app-driven adjacent navigation.
  • InputField: A text input component with built-in validation and error handling for forms and settings.
  • KeyboardSpacer: An automatic spacer component that adjusts its height to match the virtual keyboard.
  • LoadToast: A full-screen loading overlay component to block the screen in long running functions.
  • NumberOption: A numeric input field component with labels and validation for settings and forms.
  • ToggleOption: A toggle switch for boolean settings with title and optional subtitle.
  • VideoViewer: A reusable video viewer with standardized playback controls and app-driven adjacent navigation.

Python Components

To use this library, you need to setup on each python file before any imports.

from src.lib import setup

setup(app_name="yourapp.name", crash_report_url=None)

from src.lib.kv import KV

...
  • setup: Configure global variables for this package
  • config: Provide starndard paths (cache, data, config) for your application.
  • crash: Implement backend for crash reports, and a decorator to send crashes to a server.
  • http: Pure python HTTP client with a requests-like structure, on top of urllib.
  • kv: Key-Value storage on top of sqlite3 with ttl and batching support.
  • memoize: Memoization support for python function on top of KV.
  • mimetypes: Standard mimetype package fixed for Ubuntu Touch.
  • notification: Utilities to recieve and send notifications.
  • utils: Utility functions. Short random string, dataclass and enum convertion to qml friendly types.

License

Copyright (C) 2025 Brenno Flávio de Almeida

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3, as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.