Bildirimler
imux, AI ajanlarının ve betiklerin dikkat istediklerinde sizi uyarmasına olanak tanıyan masaüstü bildirimlerini destekler.
Yaşam döngüsü
- Alındı: bildirim panelde görünür, masaüstü uyarısı tetiklenir (bastırılmamışsa)
- Okunmamış: çalışma alanı sekmesinde rozet gösterilir
- Okundu: o çalışma alanını görüntülediğinizde temizlenir
- Temizlendi: panelden kaldırıldı
Bastırma
Masaüstü uyarıları şu durumlarda bastırılır:
- imux penceresi odaklandığında
- Bildirimi gönderen belirli çalışma alanı aktif olduğunda
- Bildirim paneli açık olduğunda
Bildirim paneli
Bildirim panelini açmak için ⌘⇧I tuşuna basın. Bir bildirime tıklayarak o çalışma alanına atlayın. En son okunmamış bildirime sahip çalışma alanına doğrudan atlamak için ⌘⇧U tuşuna basın.
Özel komut
Her bildirim zamanlandığında bir shell komutu çalıştırın. Ayarlar > Uygulama > Bildirim Komutu'nda ayarlayın. Komut şu ortam değişkenleriyle /bin/sh -c aracılığıyla çalışır:
| Değişken | Açıklama |
|---|---|
ICC_NOTIFICATION_TITLE | Bildirim başlığı (çalışma alanı adı veya uygulama adı) |
ICC_NOTIFICATION_SUBTITLE | Bildirim alt başlığı |
ICC_NOTIFICATION_BODY | Bildirim gövde metni |
# 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.logKomut, sistem ses seçicisinden bağımsız olarak çalışır. Yalnızca özel komutu kullanmak için seçiciyi "Yok" olarak ayarlayın veya bir sistem sesi artı özel bir eylem için her ikisini de tutun.
Bildirim gönderme
CLI
icc notify --title "Task Complete" --body "Your build finished"
icc notify --title "Claude Code" --subtitle "Waiting" --body "Agent needs input"OSC 777 (basit)
RXVT protokolü başlık ve gövde ile sabit bir format kullanır:
printf '\e]777;notify;My Title;Message body here\a'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 (zengin)
Kitty protokolü alt başlıkları ve bildirim ID'lerini destekler:
# 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\\'| Özellik | OSC 99 | OSC 777 |
|---|---|---|
| Başlık + gövde | Evet | Evet |
| Alt başlık | Evet | Hayır |
| Bildirim ID | Evet | Hayır |
| Karmaşıklık | Daha yüksek | Daha düşük |
Claude Code hooks
imux, görevler tamamlandığında sizi bilgilendirmek için Claude Code ile hooks aracılığıyla entegre olur.
1. Hook betiğini oluşturun
#!/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"
;;
esacchmod +x ~/.claude/hooks/icc-notify.sh2. Claude Code'u yapılandırın
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/icc-notify.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Task",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/icc-notify.sh"
}
]
}
]
}
}Hook'ları uygulamak için Claude Code'u yeniden başlatın.
Entegrasyon örnekleri
Uzun komuttan sonra bildir
# 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 buildPython
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
function notify(title, body) {
process.stdout.write(`\x1b]777;notify;${title};${body}\x07`);
}
notify('Build Done', 'webpack finished');tmux passthrough
imux içinde tmux kullanıyorsanız, passthrough'u etkinleştirin:
set -g allow-passthrough onprintf '\ePtmux;\e\e]777;notify;Title;Body\a\e\\'