Recently Written · git

dmenu-scripts

Ask for things

git clone https://github.com/equwal/dmenu-scripts

Log | Files | Refs


commit 799f719299ef5eb276ba48d5bc2a97e7f54d9742
Spenser Truex <truex@equwal.com>
2025-09-01 20:11:39 -0400

fix symlink

 dtimer | 40 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)
diff --git a/dtimer b/dtimer
deleted file mode 120000
index 6f2cf9c..0000000
--- a/dtimer
+++ /dev/null
@@ -1 +0,0 @@
-dtimer-src/dtimer
\ No newline at end of file
diff --git a/dtimer b/dtimer
new file mode 100755
index 0000000..b630dc8
--- /dev/null
+++ b/dtimer
@@ -0,0 +1,39 @@
+#!/usr/bin/env sh
+
+# Dmenu for starting a timer.
+# Takes one optional argument for a WAV file sound alert.
+# Requires a monospace font for dmenu to display the TIME'S UP text correctly.
+
+Duration=$(printf '' | dmenu -i -l 30 -p "Current time: $(date +"%H:%M - %A %Y/%m/%d") | Timer duration (min):")
+[ -z "$Duration" ] && exit 1
+
+Name=$(printf '' | dmenu -p 'Name your timer:')
+
+TimesUpMessage="Name: $Name Duration: $Duration
+                                                                                       ''''''
+TTTTTTTTTTTTTTTTTTTTTTTIIIIIIIIIIMMMMMMMM               MMMMMMMMEEEEEEEEEEEEEEEEEEEEEE '::::'   SSSSSSSSSSSSSSS      UUUUUUUU     UUUUUUUUPPPPPPPPPPPPPPPPP
+T:::::::::::::::::::::TI::::::::IM:::::::M             M:::::::ME::::::::::::::::::::E '::::' SS:::::::::::::::S     U::::::U     U::::::UP::::::::::::::::P
+T:::::::::::::::::::::TI::::::::IM::::::::M           M::::::::ME::::::::::::::::::::E ':::''S:::::SSSSSS::::::S     U::::::U     U::::::UP::::::PPPPPP:::::P
+T:::::TT:::::::TT:::::TII::::::IIM:::::::::M         M:::::::::MEE::::::EEEEEEEEE::::E':::'  S:::::S     SSSSSSS     UU:::::U     U:::::UUPP:::::P     P:::::P
+TTTTTT  T:::::T  TTTTTT  I::::I  M::::::::::M       M::::::::::M  E:::::E       EEEEEE''''   S:::::S                  U:::::U     U:::::U   P::::P     P:::::P
+        T:::::T          I::::I  M:::::::::::M     M:::::::::::M  E:::::E                    S:::::S                  U:::::D     D:::::U   P::::P     P:::::P
+        T:::::T          I::::I  M:::::::M::::M   M::::M:::::::M  E::::::EEEEEEEEEE           S::::SSSS               U:::::D     D:::::U   P::::PPPPPP:::::P
+        T:::::T          I::::I  M::::::M M::::M M::::M M::::::M  E:::::::::::::::E            SS::::::SSSSS          U:::::D     D:::::U   P:::::::::::::PP
+        T:::::T          I::::I  M::::::M  M::::M::::M  M::::::M  E:::::::::::::::E              SSS::::::::SS        U:::::D     D:::::U   P::::PPPPPPPPP
+        T:::::T          I::::I  M::::::M   M:::::::M   M::::::M  E::::::EEEEEEEEEE                 SSSSSS::::S       U:::::D     D:::::U   P::::P
+        T:::::T          I::::I  M::::::M    M:::::M    M::::::M  E:::::E                                S:::::S      U:::::D     D:::::U   P::::P
+        T:::::T          I::::I  M::::::M     MMMMM     M::::::M  E:::::E       EEEEEE                   S:::::S      U::::::U   U::::::U   P::::P
+      TT:::::::TT      II::::::IIM::::::M               M::::::MEE::::::EEEEEEEE:::::E       SSSSSSS     S:::::S      U:::::::UUU:::::::U PP::::::PP
+      T:::::::::T      I::::::::IM::::::M               M::::::ME::::::::::::::::::::E       S::::::SSSSSS:::::S       UU:::::::::::::UU  P::::::::P
+      T:::::::::T      I::::::::IM::::::M               M::::::ME::::::::::::::::::::E       S:::::::::::::::SS          UU:::::::::UU    P::::::::P
+      TTTTTTTTTTT      IIIIIIIIIIMMMMMMMM               MMMMMMMMEEEEEEEEEEEEEEEEEEEEEE        SSSSSSSSSSSSSSS              UUUUUUUUU      PPPPPPPPPP
+"
+
+if Error=$(sleep $(( $Duration * 60 )) 2>&1); then
+    [ "${1##*.}" = 'wav' ] && aplay "$1" &
+    Repeat=$(printf "$TimesUpMessage\ny\nn\n%s" | dmenu -l 32 -p "New timer? [y/n]")
+    echo "$Repeat"
+    [ "$Repeat" = "y" ] && sh -c "$0 $1"
+else
+    printf '%s' "$Error" | dmenu -l 30 -p 'ERROR:'
+fi