Skip to content

Instantly share code, notes, and snippets.

@bashbunni
Created October 27, 2022 21:41
Show Gist options
  • Save bashbunni/f6b04fc4703903a71ce9f70c58345106 to your computer and use it in GitHub Desktop.
Save bashbunni/f6b04fc4703903a71ce9f70c58345106 to your computer and use it in GitHub Desktop.
CLI Pomodoro for Mac
# I'll be doing another one for Linux, but this one will give you
# a pop up notification and sound alert (using the built-in sounds for macOS)
# Requires https://github.com/caarlos0/timer to be installed
# Mac setup for pomo
alias work="timer 60m && terminal-notifier -message 'Pomodoro'\
-title 'Work Timer is up! Take a Break 😊'\
-appIcon '~/Pictures/pumpkin.png'\
-sound Crystal"
alias rest="timer 10m && terminal-notifier -message 'Pomodoro'\
-title 'Break is over! Get back to work 😬'\
-appIcon '~/Pictures/pumpkin.png'\
-sound Crystal"
@umkl
Copy link

umkl commented Apr 8, 2024

You don't need to install terminal-notifier if you don't want to. You can trigger notifications on osx with applescript

osascript -e 'display notification "β˜•" with title "Work Timer is up!" subtitle "Take a Break 😊" sound name "Crystal"'

but how would i combine this with the alias, cause then there are 3 layers of strings?

ok you would have to escape it like this: " -> so in the rc-file it would look like this:

alias work="timer 50m && osascript -e 'display notification \"β˜•\" with title \"Work Timer is up!\" subtitle \"Take a Break 😊\" sound name \"Crystal\"'"

@SmithWebDev
Copy link

i've been playing around and attempting to add a time input, but it doesnt recognize an argument. I've looked over my other alias and have no issues with adding an argument.

alias work="timer $1 && osascript -e 'display notification \"β˜•\" with title \"Work Timer is up!\" subtitle \"Take a Break 😊\" sound name \"Crystal\"' && say \"Phase complete\""

@umkl
Copy link

umkl commented Apr 9, 2024

i've been playing around and attempting to add a time input, but it doesnt recognize an argument. I've looked over my other alias and have no issues with adding an argument.

alias work="timer $1 && osascript -e 'display notification \"β˜•\" with title \"Work Timer is up!\" subtitle \"Take a Break 😊\" sound name \"Crystal\"' && say \"Phase complete\""

alias work='work_alias(){ timer "$1" && osascript -e "display notification \"β˜•\" with title \"Work Timer is up!\" subtitle \"Take a Break 😊\" sound name \"Crystal\"" && say "Phase complete"; unset -f work_alias; }; work_alias'

this works for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment