Before getting into the main subject, be aware that this article has been first write for the Blog of Antistatique — Web Agency in Lausanne, Switzerland. A place where I work as Full Stack Web Developer.
Feel free to read it here or check it out there: https://antistatique.net/fr/node/343
Retrieve all the code on my Gist: https://gist.github.com/Sudei/ad0c1330966522c05f504d71d29f675b
As a developer, I often run commands that take a while to finish:
Considering that I am not a very patient person, I get really bored waiting for these commands to finish, so during that time I usually switch to some other occupation such as:
- Checking Twitter/Tech/Hacking websites,
- Making & (sometimes) drinking coffee,
- Playing T-Rex Runner - The hidden endless running game of Chrome.
15 minutes later, I finally come back to my terminal with a cold coffee and I discover that I forgot to
cd in the correct folder. Repeat for another 15 minutes.
Isn't there a better way?
Work is hard. Distractions are plentiful. And time is short.
— Adam Hochschild, American author, journalist, and lecturer
Waiting by watching some Gifs right on the terminal with Gifi.
One of my favourite solutions but not enough "cool" for some people.
Making all tools faster and developers more patient.
That would work in a parallel universe where magic exists, maybe.
Use a short script that uses
terminal-notifier & append it to each command such as
git pull email@example.com | notify-me
That's pretty cool and do the job but ... I'm lazy and I don't want to append anything to my commands or predict if my command is a long-running command or not before even running it.
What about trying another approach ? Instead of trying to detect long-running commands, we could simply send a notification when the CLI is not in the foreground.
Mmmh, sounds good but is that possible ? With iTerm & OSX 10.9+, you can do this !!
1) Create a new command named
touch /usr/local/bin/notify && chmod +x /usr/local/bin/notify vim /usr/local/bin/notify
2) Copy and paste this system script inside:
3) Add a custom function named
f_notifyme and expose it to iTerm using
4) Copy and paste the function
5) We did it ! Finally, reload the source file of your terminal
source ~/.zshrc and enjoy !
All images copyright of their respective owners.
Big thanks to @Antistatique for the review & @gratisography for images.