Notifikacije

imux podržava desktop notifikacije, omogućavajući AI agentima i skriptama da vas obavijeste kada trebaju pažnju.

Životni ciklus

  1. Primljeno: notifikacija se pojavljuje u panelu, desktop obavještenje se pokreće (ako nije potisnuto)
  2. Nepročitano: bedž prikazan na tabu radnog prostora
  3. Pročitano: obrisano kada pogledate taj radni prostor
  4. Obrisano: uklonjeno iz panela

Potiskivanje

Desktop obavještenja se potiskuju kada:

  • imux prozor je fokusiran
  • Specifični radni prostor koji šalje notifikaciju je aktivan
  • Panel notifikacija je otvoren

Panel notifikacija

Pritisnite ⌘⇧I za otvaranje panela notifikacija. Kliknite na notifikaciju za skok na taj radni prostor. Pritisnite ⌘⇧U za direktan skok na radni prostor sa najnovijom nepročitanom notifikacijom.

Prilagođena komanda

Pokrenite shell komandu svaki put kada je notifikacija zakazana. Postavite je u Postavke > Aplikacija > Komanda notifikacije. Komanda se pokreće putem /bin/sh -c sa ovim varijablama okruženja:

VarijablaOpis
ICC_NOTIFICATION_TITLENaslov notifikacije (ime radnog prostora ili aplikacije)
ICC_NOTIFICATION_SUBTITLEPodnaslov notifikacije
ICC_NOTIFICATION_BODYTekst tijela notifikacije
Examples
# Text-to-speech
say "$ICC_NOTIFICATION_TITLE"

# Custom sound file
afplay /path/to/sound.aiff

# Log to file
echo "$ICC_NOTIFICATION_TITLE: $ICC_NOTIFICATION_BODY" >> ~/notifications.log

Komanda se pokreće nezavisno od sistemskog birača zvukova. Postavite birač na "Ništa" za korištenje samo prilagođene komande, ili zadržite oboje za sistemski zvuk plus prilagođenu akciju.

Slanje notifikacija

CLI

icc notify --title "Task Complete" --body "Your build finished"
icc notify --title "Claude Code" --subtitle "Waiting" --body "Agent needs input"

OSC 777 (jednostavno)

RXVT protokol koristi fiksni format sa naslovom i tijelom:

printf '\e]777;notify;My Title;Message body here\a'
Shell function
notify_osc777() {
    local title="$1"
    local body="$2"
    printf '\e]777;notify;%s;%s\a' "$title" "$body"
}

notify_osc777 "Build Complete" "All tests passed"

OSC 99 (bogato)

Kitty protokol podržava podnaslove i ID-eve notifikacija:

# Format: ESC ] 99 ; <params> ; <payload> ESC \

# Simple notification
printf '\e]99;i=1;e=1;d=0:Hello World\e\\'

# With title, subtitle, and body
printf '\e]99;i=1;e=1;d=0;p=title:Build Complete\e\\'
printf '\e]99;i=1;e=1;d=0;p=subtitle:Project X\e\\'
printf '\e]99;i=1;e=1;d=1;p=body:All tests passed\e\\'
FunkcionalnostOSC 99OSC 777
Naslov + tijeloDaDa
PodnaslovDaNe
ID notifikacijeDaNe
SloženostVišaNiža
Koristite OSC 777 za jednostavne notifikacije. Koristite OSC 99 kada trebate podnaslove ili ID-eve notifikacija. Koristite CLI (icc notify) za najlakšu integraciju.

Claude Code hooks

imux se integriše sa Claude Code putem hookova da vas obavijesti kada su zadaci završeni.

1. Kreirajte hook skriptu

~/.claude/hooks/icc-notify.sh
#!/bin/bash
# Skip if not in icc
[ -S /tmp/icc.sock ] || exit 0

EVENT=$(cat)
EVENT_TYPE=$(echo "$EVENT" | jq -r '.hook_event_name // "unknown"')
TOOL=$(echo "$EVENT" | jq -r '.tool_name // ""')

case "$EVENT_TYPE" in
    "Stop")
        icc notify --title "Claude Code" --body "Session complete"
        ;;
    "PostToolUse")
        [ "$TOOL" = "Task" ] && icc notify --title "Claude Code" --body "Agent finished"
        ;;
esac
chmod +x ~/.claude/hooks/icc-notify.sh

2. Konfigurirajte Claude Code

~/.claude/settings.json
{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/icc-notify.sh"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Task",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/icc-notify.sh"
          }
        ]
      }
    ]
  }
}

Ponovo pokrenite Claude Code da primijenite hookove.

Primjeri integracije

Notifikacija nakon duge komande

~/.zshrc
# Add to your shell config
notify-after() {
  "$@"
  local exit_code=$?
  if [ $exit_code -eq 0 ]; then
    icc notify --title "✓ Command Complete" --body "$1"
  else
    icc notify --title "✗ Command Failed" --body "$1 (exit $exit_code)"
  fi
  return $exit_code
}

# Usage: notify-after npm run build

Python

python
import sys

def notify(title: str, body: str):
    """Send OSC 777 notification."""
    sys.stdout.write(f'\x1b]777;notify;{title};{body}\x07')
    sys.stdout.flush()

notify("Script Complete", "Processing finished")

Node.js

node
function notify(title, body) {
  process.stdout.write(`\x1b]777;notify;${title};${body}\x07`);
}

notify('Build Done', 'webpack finished');

tmux passthrough

Ako koristite tmux unutar icc-a, omogućite passthrough:

.tmux.conf
set -g allow-passthrough on
printf '\ePtmux;\e\e]777;notify;Title;Body\a\e\\'