Add Live Activities as configurable bar items (#30)

* Add Live Activities as configurable bar items

* Fix activity owner monitoring and Morph list interactions

* Keep activity rows stable during updates and tighten their layout

* Use subtle theme tint for activity cards

* Tighten activity title and progress spacing

* Use theme accent for active progress rings

* Fit compact activities to measured titles and badge

* Expose Live Activities display controls in Settings

* Open activity terminals and streamline the Morph header

* Give Morph continuous icons and prioritize workspace navigation

* Show activity progress inside its ring

* Inset activity progress rings and strengthen their stroke

* Fix activity lifecycle, command output handling and list navigation

* Reduce activity update work and harden publisher lifetimes

* Set up Live Activities for the detected user shell during installation

* Document Activities setup, daily use and troubleshooting

* Preserve Morph idle width across empty activity updates

* Fix dimming flicker, hide inactive music tab and consolidate Activities docs

* Fix panel clearance across styles and match previews to theme settings

* Prevent panel blur from repainting neighboring islands

---------

Co-authored-by: Samuel Onoja <[email protected]>
This commit is contained in:
Samuel OnojaandSamuel Onoja authored and GitHub committed 2026-10-12 22:52:25 +01:00
1 parent 7a7df0106c
commit 6b0d903ad0
107 files changed
+9340 -291

No files matched your search

+15
View File
@@ -19,6 +19,20 @@ pub struct Cli {
#[derive(Debug, Subcommand)]
pub enum Command {
/// Publish bounded activity data owned by the invoking shell.
Activity {
#[command(subcommand)]
action: crate::activities::Action,
},
/// Run a command with activity publishing; preserve its actual exit status.
Run {
#[arg(long)]
title: Option<String>,
#[arg(long)]
cargo_json: bool,
#[arg(last = true, required = true)]
command: Vec<String>,
},
/// Show the active window.
#[command(alias = "get-focused-window")]
FocusedWindow,
@@ -214,6 +228,7 @@ fn value_name(value: &impl ValueEnum) -> String {
impl Command {
pub fn ipc(&self) -> Option<(&'static str, Value)> {
let (command, args) = match self {
Self::Activity { .. } | Self::Run { .. } => return None,
Self::FocusedWindow => ("get-focused-window", json!({})),
Self::Windows => ("get-windows", json!({})),
Self::IdleInhibition => ("get-idle-inhibition", json!({})),