Varsler

imux støtter skrivebordsvarsler, slik at AI-agenter og skript kan varsle deg når de trenger oppmerksomhet.

Livssyklus

  1. Mottatt: varselet vises i panelet, skrivebordsvarsel utløses (hvis ikke undertrykt)
  2. Ulest: merke vist på arbeidsområdefanen
  3. Lest: fjernet når du ser på det arbeidsområdet
  4. Fjernet: fjernet fra panelet

Undertrykking

Skrivebordsvarsler undertrykkes når:

  • icc-vinduet er fokusert
  • Det spesifikke arbeidsområdet som sender varselet er aktivt
  • Varselpanelet er åpent

Varselpanel

Trykk ⌘⇧I for å åpne varselpanelet. Klikk et varsel for å hoppe til det arbeidsområdet. Trykk ⌘⇧U for å hoppe direkte til arbeidsområdet med det nyeste uleste varselet.

Egendefinert kommando

Kjør en shell-kommando hver gang et varsel planlegges. Sett den i Innstillinger > App > Varselkommando. Kommandoen kjøres via /bin/sh -c med disse miljøvariablene:

VariabelBeskrivelse
ICC_NOTIFICATION_TITLEVarselstittel (arbeidsområdenavn eller appnavn)
ICC_NOTIFICATION_SUBTITLEVarselsundertittel
ICC_NOTIFICATION_BODYVarselsbrødtekst
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

Kommandoen kjøres uavhengig av systemlydvelgeren. Sett velgeren til "Ingen" for å kun bruke den egendefinerte kommandoen, eller behold begge for en systemlyd pluss en egendefinert handling.

Sende varsler

CLI

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

OSC 777 (enkel)

RXVT-protokollen bruker et fast format med tittel og brødtekst:

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 (rik)

Kitty-protokollen støtter undertitler og varsel-ID-er:

# 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\\'
FunksjonOSC 99OSC 777
Tittel + brødtekstJaJa
UndertittelJaNei
Varsel-IDJaNei
KompleksitetHøyereLavere
Bruk OSC 777 for enkle varsler. Bruk OSC 99 når du trenger undertitler eller varsel-ID-er. Bruk CLI (icc notify) for enklest integrasjon.

Claude Code hooks

imux integrerer med Claude Code via hooks for å varsle deg når oppgaver fullføres.

1. Opprett hook-skriptet

~/.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. Konfigurer 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"
          }
        ]
      }
    ]
  }
}

Start Claude Code på nytt for å bruke hooksene.

Integrasjonseksempler

Varsel etter lang kommando

~/.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

Hvis du bruker tmux inne i imux, aktiver passthrough:

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