Hacker News new | ask | show | jobs
An analog clock in your bash prompt on OS X (github.com)
35 points by psm42 4805 days ago
6 comments

That is a lot of if statements just to get some directly adjacent unicode characters, which can easily be generated with some simple math.

This solution may be a little terse (96 bytes; I wrote it for the 140bytes golfing challenge), but it should help explain how to get the current time's clock character: https://gist.github.com/eligrey/985721#file-annotated-js

Instead of using a very long set of If statements, I think you could just use something like

    a=$((`date +%M`/15));b=$((128335 + `date +%l` +((a*(a**2-39*a+110))/6)));printf '%x' $b;
and print the resulting hex's character, no?

(I'd finish off the code myself, but I have a bus to catch)

Edit: Ah, I see Sephr came prepared. ;)

I've proposed a PR that do just that (maybe a little bit more readable): https://github.com/paulsm/bashtime/pull/1

Also, the code is now used in the liquid prompt: https://github.com/nojhan/liquidprompt/commit/91959b636af751...

I'm sure you could. It's a quick hack.
No criticism here; your quick hack let me do a quick hack and learn some bash in the process. :)
Wondering what this looks like on GNU bash (version 4.2.25 i686-pc-linux-gnu)? Wonder no longer:

  $ ./bashtime.sh 
  🕤
A font that supports Emoji is required.
Honest question: Do you prefer this to a digital time display? Why?

Personally, when it comes to time, I "think" digital.

No idea really. I made it quickly this morning, and I'm trying it out today. It does make it easier to see whether a bunch of commands were performed at roughly the same time than a digital display.
Your advantage unfortunately obscures other useful information.

My [zsh] prompt displays the exact time down to the second on its own line. I just scan up looking at the time to see if the hours match or minutes... But I still have the ability to know if one was 3 minutes 33 seconds or one was 27 minutes 10 seconds within that hour/half hour.

Is there a particular font that works better than others for this? I've tried all my fixed width fonts and the clock is barely readable in any of them.
I use Source Code Pro. Consolas used to be my favorite.
This is cutesy, but having a timestamp on your prompt is an easy-to-implement sometimes-lifesaver. Highly recommended, one way or another :)
>one way or another

Speaking of another:

    export PS1="\t $"
For a lot more information on bash prompts, I'd recommend http://blog.sanctum.geek.nz/bash-prompts/
Out of curiosity, could you describe a scenario where you'd consider time-stamping like that to be a lifesaver?
I'd love this for its compact nature, but I like digital for its precision. A title tag would be great!

   <prompt title="12:03:33">(clockface)</prompt>