#!/bin/bash # omarchy:summary=Send a desktop notification with Omarchy glyph and body spacing # omarchy:args= [description] [-g ] [-u ] [notify-send options] # omarchy:examples=omarchy notification send "Reminder" "5 minutes are up" -g 󰔛 -u critical set -euo pipefail headline="" description="" glyph="" urgency="low" args=() parse_omarchy_option() { case $1 in -g | --glyph) if (($# < 2)); then echo "Missing value for $1" >&2 exit 1 fi glyph="$2" return 0 ;; -u | --urgency) if (($# < 2)); then echo "Missing value for $1" >&2 exit 1 fi urgency="$2" return 0 ;; esac return 1 } while (($# > 0)); do if parse_omarchy_option "$@"; then shift 2 else break fi done if (($# < 1)); then echo "Usage: omarchy-notification-send [-g ] [-u ] [description] [notify-send options]" exit 1 fi headline=$1 shift if (($# > 0)) && [[ $1 != -* ]]; then description=$1 shift fi while (($# > 0)); do if parse_omarchy_option "$@"; then shift 2 else args+=("$1") shift fi done # Tag as a user-action toast so it pops through DND. See dnd-fix-plan.md. args+=("-a" "omarchy-action" "-u" "$urgency") # Send the glyph in a summary prefix inline. This keeps the notification # thin and compact, replicating the old Mako style, because Quickshell won't # render the 40x40 icon slot if the custom hint isn't present. if [[ -n $glyph ]]; then headline="$glyph $headline" fi if [[ -n $description ]]; then notify-send "${args[@]}" "$headline" "$description" else notify-send "${args[@]}" "$headline" fi