Files
feresaria/contrib/activities/ferese.zsh
T
Samuel OnojaandSamuel Onoja 6b0d903ad0 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]>
2026-10-12 22:52:25 +01:00

30 lines
1012 B
Bash

# Source explicitly from .zshrc; add-zsh-hook preserves other integrations.
[[ -o interactive ]] || return
[[ ${_ferese_installed:-} == 1 ]] && return
_ferese_installed=1
_ferese_sequence=0
autoload -Uz add-zsh-hook
_ferese_preexec() {
local saved=$?
((_ferese_sequence+=1))
_ferese_local="zsh-$$-$_ferese_sequence"
feresectl activity hook "$_ferese_local" --command "${1[1,4096]}" --cwd "${PWD[1,1024]}" >/dev/null 2>&1
return "$saved"
}
_ferese_precmd() {
local saved=$?
if [[ -n ${_ferese_local:-} ]]; then
if (( saved == 130 || saved == 143 )); then
feresectl activity cancel "$_ferese_local" >/dev/null 2>&1
elif (( saved == 0 )); then
feresectl activity end "$_ferese_local" --result ok >/dev/null 2>&1
else
feresectl activity end "$_ferese_local" --result fail >/dev/null 2>&1
fi
unset _ferese_local
fi
return "$saved"
}
add-zsh-hook preexec _ferese_preexec
add-zsh-hook precmd _ferese_precmd