halkyon/apps/meditate
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 3f441cbc98
feat: the rail opens into a sidebar with labels from expanded windows on
Decided by the developer on 9 and 10 Nov 2026: phones keep the bar,
medium windows (600 to 840 dp) the rail alone, and from 840 dp a toggle
at the rail's foot opens it into a sidebar 256 dp wide, as Proton
Drive's: the app named beside its icon, each tab its label beside its
icon, the icons where the rail had them, so nothing moves under the
pointer. Its labels come in one after another, top to bottom, all at once
where animations are off. Open or closed is kept per device, in
halkyon_app's Look (look.json, `sidebar`), which Learn keeps in its
DeviceSettings (`sidebarOpen`), as it does the appearance and language.

NavigationFrame takes sidebarOpen and onSidebarChanged (no toggle without
it), and sidebarSections, what the app lists below the tabs, which Todo's
favourites and projects will be. The closed rail keeps Flutter's widget,
its toggle pinned at the foot (trailingAtBottom); the open one is the
frame's own, as the staggered labels need. Learn, Todo, Train and
Meditate keep the choice.

Whats-New: In wide windows, the button at the foot of the side rail opens it into a sidebar with names, and it stays open.
Whats-New-De: In breiten Fenstern öffnet der Knopf unten an der Seitenleiste sie mit Namen, und sie bleibt offen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-10 18:04:09 +01:00
..
halkyon_meditate_client feat(meditate): the operator's library on the server, and a course's lessons done synced 2026-11-04 09:31:59 +01:00
halkyon_meditate_flutter feat: the rail opens into a sidebar with labels from expanded windows on 2026-11-10 18:04:09 +01:00
halkyon_meditate_server feat(meditate,deploy): Meditate beside the instance, and every server's public address from .env 2026-11-08 19:59:39 +01:00
tool feat(meditate): the app: Today, Explore, Profile, the sitting and its bells 2026-11-04 09:31:56 +01:00
.gitignore feat(meditate): the app: Today, Explore, Profile, the sitting and its bells 2026-11-04 09:31:56 +01:00
AGENTS.md feat(meditate,deploy): Meditate beside the instance, and every server's public address from .env 2026-11-08 19:59:39 +01:00
CLAUDE.md feat(meditate): the app: Today, Explore, Profile, the sitting and its bells 2026-11-04 09:31:56 +01:00
README.md feat(meditate): the app: Today, Explore, Profile, the sitting and its bells 2026-11-04 09:31:56 +01:00

Halkyon Meditate

Meditation, as a Halkyon app (ADR 0038): a silent timer with bells, Halkyon's own guided practices as text cues, found by goal and kind, and the person's minutes, days and days in a row, every sitting sealed and synced between their devices. People choose an instance, sign in (with SimpleLogin or a password), switch between the accounts on their devices, sign out and delete their account, as in every Halkyon app.

Package What it is
halkyon_meditate_server The server: Serverpod with the halkyon_base module and the sync engine
halkyon_meditate_client Its client, generated by Serverpod
halkyon_meditate_flutter The app, on halkyon_app and halkyon_ui (Android, iOS, Linux, macOS, Windows)

Run it with serverpod start in halkyon_meditate_server, which starts the server (and its embedded PostgreSQL) and the app; or the app alone against an instance with flutter run --dart-define=SERVER_URL=https://…/ in halkyon_meditate_flutter. Tests: dart run melos run test:dart --scope=halkyon_meditate_server and dart run melos run test:flutter --scope=halkyon_meditate_flutter at the repository's root, or dart run tool/check.dart for everything.

The app's icon is Lucide's sprout (ISC licence, ADR 0031), drawn by the repository's tool/app_icons.py. Its bells are synthesised by tool/bells.py and are the project's own. Licences: the server under the SSPL, the client and the app under the AGPL (LICENSE.md).