Знайшов dump $HOME
2008 року, який був зроблений на fbsd. Всередині
побачив файла з назвою xcron. Це шелóвий скрипта, який я ув 2008 (і
раніше) пускав для нагадування дій як:
% xcron 4 кофе стынет
де через 4 хвилини воно малювало X11 даялога з відповідним повідомленням.
Скрипта є настільки смішний, що заслуговує на зображення тут. Яка це була ітерація його, на жаль, залишається невідомим--про ґіта я тоді не чув, а тримати ув svn різноманітний мотлох було ліньки, тому що створювати ріпо ув svn то була Процедура. (Не пам'ятаю чи існували тоді аналоги ґітхабу для приватних ріпос; якщо і так, то грошей на них все одно не було.)
Біхолд:
Найкращій блока--"cat all arguments", ггг
Не знаю чи може він сперечатися з шедеврами на кшталт
return (foo == "bar" ? true : false)
але мені здається що on a par з ними, так би мовити.
Скрипта, звичайно, є непридатний до сучасний лайнаксів: xmessage то була Xaw ютіліта (кінця 80х?) для створювання елементарних даялогів yes/no. Ув 2008 році користувалися нею майже ніхто, а вірогідність того що вона буде інстальована зараз є 0.
З графічними аналогами dialog(1) за цей час ліпше також не стало, їх популярність залишається дуже низька. Tk помер, байдінґами до gtk/qt ув ruby/python користуються 10 людей на планеті Земля.
Можна було би кликати термінального емулятора:
$ xterm -fs 20 -e 'whiptail --msgbox KURWA\ BÓBR 0 0'

але по-1ше, xterm буває тільки у поціновувачів середовищ вільних від середовищ стільниці (страшно далєкі оні от народа), по-2ге, портабельного поняття діфолтний термінала не існує--ув кожному середовищі стільниці він є свій зі своїм механізмом з'ясування який саме є улюбленцем користувача. Можна тримати таблицю "éкзек'ютабл аргументи-для-зміни-шрифта", але це є забагато клопоту задля такої дрібниці.
Або:
ембедити маленьку C gtk4 програму (яка малює даялога) та компілювати її кожного разу перед закінченням таймера;
переписати скрипта на расті з використанням якогось GUI тулкіта типу Slint (який лінкується статично) та розповсюджувати байнарника;
писати повідомлення ув
$(mktemp /tmp/XXXXXX.html)
та кликати бовзера через xdg-open;через D-Bus кликати метода org.freedesktop.Notifications.Notify на віддаленому об'єкті демона нотіфікацій. Кожне середовище стільниці останнього має своє, але API є стандартизований.
Варіянт 2024 з ді-басом:
#!/bin/sh
set -e
eh() { echo "$*" 1>&2; exit 1; }
command -v notify-send >/dev/null || eh no notify-send
[ $# -ge 2 ] || eh "Usage: xcron N msg ..."
sec=$1; [ "$sec" -ge 0 ] 2>&- || eh "Invalid int: $sec"; shift
summary=`ngettext "1 minute is up" "$sec minutes are up" "$sec"`
(
sleep $((60*sec))
notify-send -i modem -- "xcron: $summary" "$*"
) &