summaryrefslogtreecommitdiff
path: root/dotfiles
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles')
-rwxr-xr-xdotfiles/common/.local/bin/notify138
-rw-r--r--dotfiles/common/.local/share/icons/notify/alarm.pngbin0 -> 55664 bytes
-rw-r--r--dotfiles/common/.local/share/icons/notify/alert.pngbin0 -> 66016 bytes
-rw-r--r--dotfiles/common/.local/share/icons/notify/bug.pngbin0 -> 60772 bytes
-rw-r--r--dotfiles/common/.local/share/icons/notify/fail.pngbin0 -> 77513 bytes
-rw-r--r--dotfiles/common/.local/share/icons/notify/info.pngbin0 -> 66060 bytes
-rw-r--r--dotfiles/common/.local/share/icons/notify/question.pngbin0 -> 75683 bytes
-rw-r--r--dotfiles/common/.local/share/icons/notify/security.pngbin0 -> 64253 bytes
-rw-r--r--dotfiles/common/.local/share/icons/notify/success.pngbin0 -> 75824 bytes
-rw-r--r--dotfiles/common/.local/share/sounds/notify/alarm.oggbin0 -> 45775 bytes
-rw-r--r--dotfiles/common/.local/share/sounds/notify/alert.oggbin0 -> 41684 bytes
-rw-r--r--dotfiles/common/.local/share/sounds/notify/bug.oggbin0 -> 10187 bytes
-rw-r--r--dotfiles/common/.local/share/sounds/notify/fail.oggbin0 -> 74886 bytes
-rw-r--r--dotfiles/common/.local/share/sounds/notify/info.oggbin0 -> 31466 bytes
-rw-r--r--dotfiles/common/.local/share/sounds/notify/question.oggbin0 -> 49846 bytes
-rw-r--r--dotfiles/common/.local/share/sounds/notify/security.oggbin0 -> 19910 bytes
-rw-r--r--dotfiles/common/.local/share/sounds/notify/success.oggbin0 -> 39244 bytes
17 files changed, 138 insertions, 0 deletions
diff --git a/dotfiles/common/.local/bin/notify b/dotfiles/common/.local/bin/notify
new file mode 100755
index 0000000..a89a3ff
--- /dev/null
+++ b/dotfiles/common/.local/bin/notify
@@ -0,0 +1,138 @@
+#!/bin/bash
+#
+# notify - Display notifications with icons and sounds
+#
+# Usage:
+# notify <type> "title" "body" [--persist]
+#
+# Types:
+# success - Green checkmark, pleasant chime
+# fail - Red X, warning tone
+# alert - Yellow exclamation, attention tone
+# question - Blue question mark, contemplative tone
+# alarm - Alarm clock icon, alarm sound
+# info - Blue info icon, confident tone
+# security - Shield icon, security tone
+# bug - Bug icon, error tone
+#
+# Options:
+# --persist Don't auto-dismiss (stays until manually closed)
+#
+# Examples:
+# notify success "Job Complete" "Download finished in 12 minutes"
+# notify fail "Job Failed" "Connection refused" --persist
+# notify alert "Warning" "Network speed reduced"
+# notify question "Input Needed" "Continue or abort?"
+
+set -euo pipefail
+
+ICON_DIR="$HOME/.local/share/icons/notify"
+SOUND_DIR="$HOME/.local/share/sounds/notify"
+
+usage() {
+ cat <<EOF
+Usage: notify <type> "title" "body" [--persist]
+
+Types:
+ success Green checkmark, pleasant chime
+ fail Red X, warning tone
+ alert Yellow exclamation, attention tone
+ question Blue question mark, contemplative tone
+ alarm Alarm clock, alarm sound
+ info Blue info icon, confident tone
+ security Shield icon, security tone
+ bug Bug icon, error tone
+
+Options:
+ --persist Don't auto-dismiss notification
+
+Examples:
+ notify success "Job Complete" "Download finished"
+ notify fail "Build Failed" "Test errors" --persist
+EOF
+ exit 1
+}
+
+# Require at least type, title, body
+if [[ $# -lt 3 ]]; then
+ usage
+fi
+
+TYPE="$1"
+TITLE="$2"
+BODY="$3"
+PERSIST="${4:-}"
+
+# Validate type and set icon/sound
+case "$TYPE" in
+ success)
+ ICON="$ICON_DIR/success.png"
+ SOUND="$SOUND_DIR/success.ogg"
+ ;;
+ fail)
+ ICON="$ICON_DIR/fail.png"
+ SOUND="$SOUND_DIR/fail.ogg"
+ ;;
+ alert)
+ ICON="$ICON_DIR/alert.png"
+ SOUND="$SOUND_DIR/alert.ogg"
+ ;;
+ question)
+ ICON="$ICON_DIR/question.png"
+ SOUND="$SOUND_DIR/question.ogg"
+ ;;
+ alarm)
+ ICON="$ICON_DIR/alarm.png"
+ SOUND="$SOUND_DIR/alarm.ogg"
+ ;;
+ info)
+ ICON="$ICON_DIR/info.png"
+ SOUND="$SOUND_DIR/info.ogg"
+ ;;
+ security)
+ ICON="$ICON_DIR/security.png"
+ SOUND="$SOUND_DIR/security.ogg"
+ ;;
+ bug)
+ ICON="$ICON_DIR/bug.png"
+ SOUND="$SOUND_DIR/bug.ogg"
+ ;;
+ *)
+ echo "Error: Unknown type '$TYPE'" >&2
+ echo "Valid types: success, fail, alert, question, alarm, info, security, bug" >&2
+ exit 1
+ ;;
+esac
+
+# Check assets exist
+if [[ ! -f "$ICON" ]]; then
+ echo "Warning: Icon not found: $ICON" >&2
+fi
+
+if [[ ! -f "$SOUND" ]]; then
+ echo "Warning: Sound not found: $SOUND" >&2
+fi
+
+# Build notify-send arguments
+NOTIFY_ARGS=(
+ --app-name=""
+ --urgency=normal
+)
+
+# Add persist flag if requested
+if [[ "$PERSIST" == "--persist" ]]; then
+ NOTIFY_ARGS+=(--expire-time=0)
+fi
+
+# Add icon if it exists
+if [[ -f "$ICON" ]]; then
+ NOTIFY_ARGS+=(--icon="$ICON")
+fi
+
+# Play sound in background (if it exists)
+if [[ -f "$SOUND" ]]; then
+ paplay "$SOUND" &
+fi
+
+# Send notification
+notify-send "${NOTIFY_ARGS[@]}" "$TITLE" "$BODY"
diff --git a/dotfiles/common/.local/share/icons/notify/alarm.png b/dotfiles/common/.local/share/icons/notify/alarm.png
new file mode 100644
index 0000000..23e1374
--- /dev/null
+++ b/dotfiles/common/.local/share/icons/notify/alarm.png
Binary files differ
diff --git a/dotfiles/common/.local/share/icons/notify/alert.png b/dotfiles/common/.local/share/icons/notify/alert.png
new file mode 100644
index 0000000..7c9fda9
--- /dev/null
+++ b/dotfiles/common/.local/share/icons/notify/alert.png
Binary files differ
diff --git a/dotfiles/common/.local/share/icons/notify/bug.png b/dotfiles/common/.local/share/icons/notify/bug.png
new file mode 100644
index 0000000..9ea84cf
--- /dev/null
+++ b/dotfiles/common/.local/share/icons/notify/bug.png
Binary files differ
diff --git a/dotfiles/common/.local/share/icons/notify/fail.png b/dotfiles/common/.local/share/icons/notify/fail.png
new file mode 100644
index 0000000..ea0fbbe
--- /dev/null
+++ b/dotfiles/common/.local/share/icons/notify/fail.png
Binary files differ
diff --git a/dotfiles/common/.local/share/icons/notify/info.png b/dotfiles/common/.local/share/icons/notify/info.png
new file mode 100644
index 0000000..e2acdb4
--- /dev/null
+++ b/dotfiles/common/.local/share/icons/notify/info.png
Binary files differ
diff --git a/dotfiles/common/.local/share/icons/notify/question.png b/dotfiles/common/.local/share/icons/notify/question.png
new file mode 100644
index 0000000..fd1a4ad
--- /dev/null
+++ b/dotfiles/common/.local/share/icons/notify/question.png
Binary files differ
diff --git a/dotfiles/common/.local/share/icons/notify/security.png b/dotfiles/common/.local/share/icons/notify/security.png
new file mode 100644
index 0000000..a48799c
--- /dev/null
+++ b/dotfiles/common/.local/share/icons/notify/security.png
Binary files differ
diff --git a/dotfiles/common/.local/share/icons/notify/success.png b/dotfiles/common/.local/share/icons/notify/success.png
new file mode 100644
index 0000000..892ef3c
--- /dev/null
+++ b/dotfiles/common/.local/share/icons/notify/success.png
Binary files differ
diff --git a/dotfiles/common/.local/share/sounds/notify/alarm.ogg b/dotfiles/common/.local/share/sounds/notify/alarm.ogg
new file mode 100644
index 0000000..b4dff15
--- /dev/null
+++ b/dotfiles/common/.local/share/sounds/notify/alarm.ogg
Binary files differ
diff --git a/dotfiles/common/.local/share/sounds/notify/alert.ogg b/dotfiles/common/.local/share/sounds/notify/alert.ogg
new file mode 100644
index 0000000..217f33a
--- /dev/null
+++ b/dotfiles/common/.local/share/sounds/notify/alert.ogg
Binary files differ
diff --git a/dotfiles/common/.local/share/sounds/notify/bug.ogg b/dotfiles/common/.local/share/sounds/notify/bug.ogg
new file mode 100644
index 0000000..6842082
--- /dev/null
+++ b/dotfiles/common/.local/share/sounds/notify/bug.ogg
Binary files differ
diff --git a/dotfiles/common/.local/share/sounds/notify/fail.ogg b/dotfiles/common/.local/share/sounds/notify/fail.ogg
new file mode 100644
index 0000000..916d88a
--- /dev/null
+++ b/dotfiles/common/.local/share/sounds/notify/fail.ogg
Binary files differ
diff --git a/dotfiles/common/.local/share/sounds/notify/info.ogg b/dotfiles/common/.local/share/sounds/notify/info.ogg
new file mode 100644
index 0000000..57900b4
--- /dev/null
+++ b/dotfiles/common/.local/share/sounds/notify/info.ogg
Binary files differ
diff --git a/dotfiles/common/.local/share/sounds/notify/question.ogg b/dotfiles/common/.local/share/sounds/notify/question.ogg
new file mode 100644
index 0000000..8e44c55
--- /dev/null
+++ b/dotfiles/common/.local/share/sounds/notify/question.ogg
Binary files differ
diff --git a/dotfiles/common/.local/share/sounds/notify/security.ogg b/dotfiles/common/.local/share/sounds/notify/security.ogg
new file mode 100644
index 0000000..301287e
--- /dev/null
+++ b/dotfiles/common/.local/share/sounds/notify/security.ogg
Binary files differ
diff --git a/dotfiles/common/.local/share/sounds/notify/success.ogg b/dotfiles/common/.local/share/sounds/notify/success.ogg
new file mode 100644
index 0000000..c28da65
--- /dev/null
+++ b/dotfiles/common/.local/share/sounds/notify/success.ogg
Binary files differ