From 444fca8aff8646f6d549971886891d6eba4af9bf Mon Sep 17 00:00:00 2001 From: Jonas Haugesen Date: Sat, 8 Aug 2026 13:27:14 +0200 Subject: [PATCH] mako QoL update --- eww/.config/eww/eww.scss | 6 +- eww/.config/eww/eww.yuck | 15 ++- eww/.config/eww/scripts/mako-dnd-state | 8 ++ eww/.config/eww/scripts/mako-dnd-toggle | 3 + mako/.config/mako/config | 52 ++++++-- mako/.config/mako/config.template | 53 ++++++-- mako/.config/mako/scripts/Chord.wav | Bin 0 -> 175010 bytes mako/.config/mako/scripts/Chord2.wav | Bin 0 -> 108776 bytes mako/.config/mako/scripts/handle-click | 64 +++++----- mako/.config/mako/scripts/notify-sound | 39 ++++++ mako/.config/mako/scripts/pling.wav | Bin 0 -> 18566 bytes .../extensions/subagent-pane-reminder.ts | 114 ++++++++++++++++++ 12 files changed, 304 insertions(+), 50 deletions(-) create mode 100755 eww/.config/eww/scripts/mako-dnd-state create mode 100755 eww/.config/eww/scripts/mako-dnd-toggle create mode 100644 mako/.config/mako/scripts/Chord.wav create mode 100644 mako/.config/mako/scripts/Chord2.wav mode change 100644 => 100755 mako/.config/mako/scripts/handle-click create mode 100755 mako/.config/mako/scripts/notify-sound create mode 100644 mako/.config/mako/scripts/pling.wav create mode 100644 pi/.pi/agent/extensions/subagent-pane-reminder.ts diff --git a/eww/.config/eww/eww.scss b/eww/.config/eww/eww.scss index b642d16..7436db5 100644 --- a/eww/.config/eww/eww.scss +++ b/eww/.config/eww/eww.scss @@ -90,7 +90,8 @@ eventbox, box, label, scale { .battery-icon, .battery-percent, .time-label, -.notification-icon { +.notification-icon, +.dnd-icon { color: $fg; font-weight: bold; padding: 0 $icon-pad; @@ -101,7 +102,8 @@ eventbox, box, label, scale { .signal-eventbox, .net-eventbox, -.notification-eventbox { +.notification-eventbox, +.dnd-eventbox { min-width: 0; min-height: 0; } diff --git a/eww/.config/eww/eww.yuck b/eww/.config/eww/eww.yuck index eae5128..8b02be7 100644 --- a/eww/.config/eww/eww.yuck +++ b/eww/.config/eww/eww.yuck @@ -70,11 +70,18 @@ ;; Notifications ;; --------------------------------------------------------------------------- +(defpoll dnd-state :interval "1s" "bash ~/.config/eww/scripts/mako-dnd-state") + (defwidget notification-widget [] - (eventbox :class "notification-eventbox" - :onclick "bash ~/.config/eww/scripts/notification-history-toggle" - :tooltip "Toggle notification history" - (label :text "" :class "notification-icon"))) + (box :orientation "h" :space-evenly false :spacing gap-tight + (eventbox :class "notification-eventbox" + :onclick "bash ~/.config/eww/scripts/notification-history-toggle" + :tooltip "Toggle notification history" + (label :text "" :class "notification-icon")) + (eventbox :class "notification-eventbox dnd-eventbox" + :onclick "bash ~/.config/eww/scripts/mako-dnd-toggle" + :tooltip "Toggle do-not-disturb" + (label :text {dnd-state} :class "notification-icon dnd-icon")))) ;; --------------------------------------------------------------------------- ;; Battery diff --git a/eww/.config/eww/scripts/mako-dnd-state b/eww/.config/eww/scripts/mako-dnd-state new file mode 100755 index 0000000..578e59a --- /dev/null +++ b/eww/.config/eww/scripts/mako-dnd-state @@ -0,0 +1,8 @@ +#!/bin/bash +# Print the current do-not-disturb state as a bar icon. +# Called by eww as a defpoll. +if makoctl mode 2>/dev/null | grep -q dnd; then + echo "" # bell-off: do-not-disturb active +else + echo "" # bell-ring: notifications on +fi diff --git a/eww/.config/eww/scripts/mako-dnd-toggle b/eww/.config/eww/scripts/mako-dnd-toggle new file mode 100755 index 0000000..976fe9f --- /dev/null +++ b/eww/.config/eww/scripts/mako-dnd-toggle @@ -0,0 +1,3 @@ +#!/bin/bash +# Toggle do-not-disturb mode for mako notifications. +makoctl mode -t dnd diff --git a/mako/.config/mako/config b/mako/.config/mako/config index eadf35e..5252716 100644 --- a/mako/.config/mako/config +++ b/mako/.config/mako/config @@ -14,6 +14,7 @@ height=300 margin=5 padding=8 icon-path=/usr/share/icons/Papirus-Dark +max-icon-size=48 # Layout anchor=top-right @@ -21,29 +22,66 @@ outer-margin=30,0,0,0 # Behavior default-timeout=6000 -ignore-timeout=0 -max-visible=20 +# Force mako's own timeouts so no notification (critical or not) can hang +# indefinitely, even if the app requests timeout=0 (never). +ignore-timeout=1 +max-visible=5 sort=-time +group-by=app-name +max-history=20 -# Format - show app name in italics -format=%s (%a)\n%b -markup=1 +# Progress bar for notifications that report progress (downloads, updates) +progress-color=over #69C3FF -# Mouse bindings - click to focus app, invoke action, and close +# Format - plain text (markup=0) so app text with renders literally. +# Priority is shown by a leading icon instead of markup/colors. +markup=0 +format= %s (%a)\n%b + +# Mouse bindings on-button-left=exec ~/.config/mako/scripts/handle-click $id on-button-middle=none on-button-right=exec makoctl dismiss -n $id +on-notify=exec ~/.config/mako/scripts/notify-sound $id # Urgency levels [urgency=low] background-color=#212a3b border-color=#405275 +format= %s (%a)\n%b [urgency=normal] background-color=#1c2433 border-color=#69C3FF +format= %s (%a)\n%b [urgency=critical] background-color=#1c2433 border-color=#FF738A -default-timeout=0 +format=󰈸 %s (%a)\n%b +# Was 0 (never) - critical notifications now auto-dismiss after 15s +default-timeout=15000 + +# Grouped notifications (group-by=app-name) - plain text, icon per urgency +[grouped] +format= (%g) %s\n%b + +[grouped urgency=low] +format= (%g) %s\n%b + +[grouped urgency=critical] +format=󰈸 (%g) %s\n%b + +# Placeholder shown when more notifications exist than max-visible +[hidden] +format=󰁉 +%h more + +# Pi agent notifications (sent via the pi QoL extension from wezterm) +[app-name=wezterm summary=Pi] +border-color=#EACD61 +background-color=#212a3b + +# Do-not-disturb: makoctl mode -a dnd hides all notifications. +# Must stay last so it overrides every style above. +[mode=dnd] +invisible=1 diff --git a/mako/.config/mako/config.template b/mako/.config/mako/config.template index 7d1d273..f786273 100644 --- a/mako/.config/mako/config.template +++ b/mako/.config/mako/config.template @@ -14,6 +14,7 @@ height=300 margin=5 padding=8 icon-path=/usr/share/icons/Papirus-Dark +max-icon-size=48 # Layout anchor=top-center @@ -21,29 +22,67 @@ outer-margin=30,0,0,0 # Behavior default-timeout=6000 -ignore-timeout=0 -max-visible=20 +# Force mako's own timeouts so no notification (critical or not) can hang +# indefinitely, even if the app requests timeout=0 (never). +ignore-timeout=1 +max-visible=5 sort=-time +group-by=app-name +max-history=20 -# Format - show app name in italics -format=%s (%a)\n%b -markup=1 +# Progress bar for notifications that report progress (downloads, updates) +progress-color=over #$BORDER -# Mouse bindings - click to focus app, invoke action, and close +# Format - plain text (markup=0) so app text with renders literally. +# Priority is shown by a leading icon instead of markup/colors. +markup=0 +format=󰁉 %s (%a)\n%b + +# Mouse bindings on-button-left=exec ~/.config/mako/scripts/handle-click $id on-button-middle=none on-button-right=exec makoctl dismiss -n $id +on-notify=exec ~/.config/mako/scripts/notify-sound $id # Urgency levels [urgency=low] background-color=#$BG_BAR border-color=#$TRACK +format=󰁉 %s (%a)\n%b [urgency=normal] background-color=#$BG border-color=#$BORDER +format=󰁁 %s (%a)\n%b [urgency=critical] background-color=#$BG border-color=#$URGENT -default-timeout=0 +format=󰀤 %s (%a)\n%b +# Was 0 (never) - critical notifications now auto-dismiss after 15s +default-timeout=15000 + +# Grouped notifications (group-by=app-name) - plain text, icon per urgency +[grouped] +format=󰁁 (%g) %s\n%b + +[grouped urgency=low] +format=󰁉 (%g) %s\n%b + +[grouped urgency=critical] +format=󰀤 (%g) %s\n%b + +# Placeholder shown when more notifications exist than max-visible +[hidden] +format=󰁉 +%h more + +# Pi agent notifications (sent via the pi QoL extension from wezterm). +# Matches theme accent $accent (#EACD61). +[app-name=wezterm summary=Pi] +border-color=#EACD61 +background-color=#$BG_BAR + +# Do-not-disturb: makoctl mode -a dnd hides all notifications. +# Must stay last so it overrides every style above. +[mode=dnd] +invisible=1 diff --git a/mako/.config/mako/scripts/Chord.wav b/mako/.config/mako/scripts/Chord.wav new file mode 100644 index 0000000000000000000000000000000000000000..92097843241dee7fc514fb2ad78669a4a166e35a GIT binary patch literal 175010 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 Sd-?GC(@#E&h~KXt9{vaTo0<3k literal 0 HcmV?d00001 diff --git a/mako/.config/mako/scripts/Chord2.wav b/mako/.config/mako/scripts/Chord2.wav new file mode 100644 index 0000000000000000000000000000000000000000..b7059a5381c0f664eb5745f18a6a6b9f323139ee GIT binary patch literal 108776 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≦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

Z(Md|Lfhm5f6;U&cFKhCrG&p_OJjirpU{5z*nQw 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 T`KDzP&RV/dev/null | awk -v id="$ID" ' + $1 == "Notification" { if (seen) exit; if ($2 == id) seen = 1; next } + seen && /^ App name:/ { sub(/^ App name: /, ""); print; exit }') -# Get app name from notification using makoctl -APPNAME=$(makoctl list | grep -A 2 "^Notification $ID" | grep "App name:" | cut -d: -f2- | xargs) +# Find a sway window matching the app and focus it. +# Exact app_id match first, then X11 class, then partial app_id as fallback. +if [ -n "$APP" ]; then + TREE=$(swaymsg -t get_tree 2>/dev/null) -# Step 1: Focus the application window in Sway (if app name found) -if [ -n "$APPNAME" ]; then - # Get the workspace of the window - WORKSPACE=$(swaymsg -t get_tree | jq -r ".. | select(.app_id?==\"$APPNAME\" or .window_properties?.class?==\"$APPNAME\") | .workspace" | head -1) + CID=$(echo "$TREE" | jq -r --arg app "$APP" ' + [ .. | objects | select(.type? == "con") + | select((.app_id? // "") != "") + | select((.app_id | ascii_downcase) == ($app | ascii_downcase)) + | .id ][0] // empty') - # If workspace not found, try case-insensitive - if [ -z "$WORKSPACE" ] || [ "$WORKSPACE" = "null" ]; then - WORKSPACE=$(swaymsg -t get_tree | jq -r ".. | select(.app_id?|test(\"$APPNAME\";\"i\") or .window_properties?.class?|test(\"$APPNAME\";\"i\")) | .workspace" | head -1) + if [ -z "$CID" ]; then + CID=$(echo "$TREE" | jq -r --arg app "$APP" ' + [ .. | objects | select(.type? == "con") + | select((.window_properties?.class? // "") != "") + | select((.window_properties.class | ascii_downcase) == ($app | ascii_downcase)) + | .id ][0] // empty') fi - # Switch to the workspace if found - if [ -n "$WORKSPACE" ] && [ "$WORKSPACE" != "null" ]; then - swaymsg workspace "$WORKSPACE" 2>/dev/null - sleep 0.1 + if [ -z "$CID" ]; then + CID=$(echo "$TREE" | jq -r --arg app "$APP" ' + [ .. | objects | select(.type? == "con") + | select((.app_id? // "") != "") + | select((.app_id | ascii_downcase) | contains($app | ascii_downcase)) + | .id ][0] // empty') fi - # Now focus the window - swaymsg "[app_id=\"$APPNAME\"]" focus 2>/dev/null || \ - swaymsg "[app_id=\"(?i)$APPNAME\"]" focus 2>/dev/null || \ - swaymsg "[class=\"$APPNAME\"]" focus 2>/dev/null || \ - swaymsg "[class=\"(?i)$APPNAME\"]" focus 2>/dev/null - - sleep 0.1 + if [ -n "$CID" ]; then + swaymsg "[con_id=$CID]" focus >/dev/null 2>&1 + fi fi -# Step 2: Invoke the notification's default action (if any) -makoctl invoke -n "$ID" 2>/dev/null - -# Step 3: Dismiss the notification -makoctl dismiss -n "$ID" 2>/dev/null +# Invoke the notification's default action (may open/focus the app), then dismiss +makoctl invoke -n "$ID" >/dev/null 2>&1 +makoctl dismiss -n "$ID" >/dev/null 2>&1 diff --git a/mako/.config/mako/scripts/notify-sound b/mako/.config/mako/scripts/notify-sound new file mode 100755 index 0000000..e97aa4e --- /dev/null +++ b/mako/.config/mako/scripts/notify-sound @@ -0,0 +1,39 @@ +#!/bin/bash +# Play a notification sound, alternating between Chord.wav and Chord2.wav. +# Skips: do-not-disturb mode and low-urgency notifications. +# Usage: notify-sound (called from mako's on-notify binding) + +ID="${1:-}" + +# Silence while do-not-disturb is active +if makoctl mode 2>/dev/null | grep -q dnd; then + exit 0 +fi + +# Only play for normal/critical urgency +if [ -n "$ID" ]; then + urgency=$(makoctl list 2>/dev/null | awk -v id="$ID" ' + $1 == "Notification" { if (seen) exit; if ($2 == id) seen = 1; next } + seen && /^ Urgency:/ { print $2; exit }') + if [ "$urgency" = "low" ]; then + exit 0 + fi +fi + +SOUND_DIR=~/.config/mako/scripts +STATE_FILE="${XDG_CACHE_HOME:-$HOME/.cache}/mako-notify-sound" + +# Alternate between the two sounds on every play +if [ -f "$STATE_FILE" ] && [ "$(cat "$STATE_FILE")" = "0" ]; then + SOUND="$SOUND_DIR/Chord2.wav" + echo "1" > "$STATE_FILE" +else + SOUND="$SOUND_DIR/Chord.wav" + echo "0" > "$STATE_FILE" +fi + +if command -v paplay >/dev/null 2>&1; then + paplay "$SOUND" +elif command -v pw-play >/dev/null 2>&1; then + pw-play "$SOUND" +fi diff --git a/mako/.config/mako/scripts/pling.wav b/mako/.config/mako/scripts/pling.wav new file mode 100644 index 0000000000000000000000000000000000000000..f8a8486688fef1fa0679fa36349360d94383afee GIT binary patch literal 18566 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�~K@#Z-k;rPw9iSQ=-uK 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 literal 0 HcmV?d00001 diff --git a/pi/.pi/agent/extensions/subagent-pane-reminder.ts b/pi/.pi/agent/extensions/subagent-pane-reminder.ts new file mode 100644 index 0000000..770088e --- /dev/null +++ b/pi/.pi/agent/extensions/subagent-pane-reminder.ts @@ -0,0 +1,114 @@ +/** + * Subagent pane lifecycle reminder. + * + * When the parent agent dispatches to a `pane: true` agent via `subagent`, + * this extension floats a cleanup reminder to the parent only: + * + * - immediately: appended to the `subagent` tool result of that call; + * - persistently: a one-line system-prompt note on later turns until the + * parent calls `stop_subagent` for that agent (or the session ends). + * + * Nothing is injected for bg agents (`pane: false`), for `delegate_subagent` + * (pane targets are rejected there anyway), for `/agents` commands, or in + * sessions that never spawn a pane agent. Other sessions and workflows stay + * untouched. + */ + +import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; +import * as fs from "node:fs"; +import * as path from "node:path"; +import { homedir } from "node:os"; + +interface SubagentInput { + agent?: unknown; + tasks?: Array<{ agent?: unknown }>; + chain?: Array<{ agent?: unknown }>; +} + +const USER_AGENT_DIRS: string[] = [ + path.join(homedir(), ".pi", "agent", "agents"), + path.join(homedir(), ".claude", "agents"), +]; + +function projectAgentDirs(cwd: string): string[] { + const dirs: string[] = []; + let current = path.resolve(cwd); + for (;;) { + dirs.push(path.join(current, ".pi", "agents"), path.join(current, ".claude", "agents")); + const parent = path.dirname(current); + if (parent === current) break; + current = parent; + } + return dirs; +} + +function hasPaneFrontmatter(text: string): boolean { + const block = text.match(/^---\r?\n([\s\S]*?)\r?\n---/); + return block ? /^\s*pane\s*:\s*(?:true|yes|on)\s*$/im.test(block[1]) : false; +} + +function isPaneAgent(name: string, cwd: string): boolean { + for (const dir of [...USER_AGENT_DIRS, ...projectAgentDirs(cwd)]) { + for (const ext of [".md", ".markdown"]) { + try { + if (hasPaneFrontmatter(fs.readFileSync(path.join(dir, `${name}${ext}`), "utf8"))) return true; + } catch { + // not present in this directory + } + } + } + return false; +} + +function agentNamesFrom(input: SubagentInput): string[] { + const names = new Set(); + const add = (value: unknown) => { + if (typeof value === "string" && value.trim()) names.add(value.trim()); + }; + add(input.agent); + for (const item of input.tasks ?? []) add(item.agent); + for (const item of input.chain ?? []) add(item.agent); + return [...names]; +} + +function reminderText(names: string[]): string { + const quoted = names.map((name) => `\`${name}\``).join(", "); + return ( + `\n\nPane cleanup: you spawned persistent pane agent(s) ${quoted}. ` + + `After you collect the result, call \`stop_subagent\` with the agent name to kill its tmux pane. ` + + `Skip only if you plan a follow-up (steer or another subagent call to the same agent); stop it at the end of the workflow. ` + + `Stopping preserves the session file, so a later \`subagent\` call resumes the agent's memory.` + ); +} + +export default function (pi: ExtensionAPI) { + // Agent names whose panes are still alive this session. + const pending = new Set(); + + pi.on("tool_call", (event) => { + if (event.toolName === "stop_subagent") { + const agent = (event.input as { agent?: unknown } | undefined)?.agent; + if (typeof agent === "string") pending.delete(agent); + } + }); + + pi.on("tool_result", (event, ctx) => { + if (event.toolName !== "subagent" || event.isError) return; + const input = (event.input as SubagentInput | undefined) ?? {}; + const paneAgents = agentNamesFrom(input).filter((name) => isPaneAgent(name, ctx.cwd)); + if (paneAgents.length === 0) return; + for (const name of paneAgents) pending.add(name); + return { + content: [...(event.content ?? []), { type: "text" as const, text: reminderText(paneAgents) }], + }; + }); + + pi.on("before_agent_start", (event) => { + if (pending.size === 0) return; + const note = + "\n\nPane cleanup (pending): " + + `[${[...pending].join(", ")}]. ` + + "After collecting their results, call stop_subagent for each (unless a follow-up is planned)."; + return { systemPrompt: event.systemPrompt + note }; + }); +}