
WTF – A personal information dashboard for your terminal - jcamou
https://wtfutil.com
======
cptnapalm
I've been wanting something sort of like this for my login screen. Little box
for the login, of course and a whole bunch of scary-to-everyone-but-me looking
output, like hollywood
([https://github.com/dustinkirkland/hollywood](https://github.com/dustinkirkland/hollywood)).
+1 if I could use the terminal emulator of my choice so cool-retro-term
([https://github.com/Swordfish90/cool-retro-
term](https://github.com/Swordfish90/cool-retro-term)) could make it look like
the screen is about to melt.

~~~
weinzierl
The login screen is ultimately just a regular process. I haven't tried it but
there is nothing against starting cool retro term and hollywood inside of it.
The most difficult part is probably to make it display on the framebuffer. For
the login itself you could then just reuse the decades old _login_ binary that
provides the login prompt you see in text mode terminals, if you like.
Shouldn't be too hard.

~~~
cptnapalm
I did, naively, make an attempt once and it kinda sorta worked in a horrible
"are you mad?" way with shell, ssh, xterm and Xephyr. It only worked with a
couple of simple window managers and if you hit ^C at login prompt, it
cooperatively dropped you to a prompt owned by root. Oops. Still, not bad for
a relatively rapid prototype proof-of-concept.

~~~
weinzierl
When I looked at the Linux boot process the first time I thought this just
kinda sorta works in a horrible "are you mad?" way*:-). Just short of three
decades later the boot process didn't really change a lot but I don't have the
same feeling about it. I just got used to it and in the end all that matters
is that it works.

------
carokann
Neat. For people looking at alternatives for configurable dashboards i suggest
sampler[0]. It has a weird license but free for personal use. You can report
any output of a terminal command with a custom time rate. E.g. you can SSH and
pipe HTOP of a remote system, query your local DB and do a timeseries etc. all
in one place.

[0]: [https://github.com/sqshq/sampler](https://github.com/sqshq/sampler)

~~~
TuringNYC
These are all great, but I'm curious if anyone can suggest browser
alternatives (I've looked before w/o success) -- It would be awesome to have
something like this open up on the home browser tab. Any suggestions?

~~~
penagwin
I'm in the same camp as you are, a funny method that would "kinda work" would
be to use something like
[https://github.com/yudai/gotty](https://github.com/yudai/gotty) but I feel
like that's a pretty hacky solution haha.

------
maweki
This looks pretty nice but without secret management it's not really that
useful. Without that you can't share your configs or have your config in your
dotfiles-repository.

That makes it really not that portable.

~~~
senorprogrammer
If you have thoughts on this, I'd love to hear your use-case. Issue #517 is
specifically about this topic.

------
shay_ker
Honestly curious - why do people live mostly in their terminal? Is it a
productivity thing?

~~~
iwalton3
In my experience, it is easier to automate a workflow using command line
applications. The GUI versions of tools have to try and predict every possible
workflow, while terminal applications can be easily combined in scripts.

That being said, there are definitely major productivity features to be had
with GUIs, such as those with web browsers and IDEs.

~~~
shay_ker
what's an example of a workflow you've automated on a terminal?

~~~
inetknght
-> download 1000 files using curl, then validate their checksum, then build stuff

-> take an almost-CSV report generated by one piece of software, remove a bunch of extra garbage at the top to turn it into an actual CSV file, then send the CSV file to data analysis pipeline.

-> join two CSV files selecting columns 2,3 from one file and 4,5 from the other file, keyed on column 1 from both files. like excel but for CSV files sized in hundreds of megabytes

-> take a bunch of CSV files and pump them into a rabbitmq queue

-> query whether a queue is empty. if so, start a new analysis job. if not, sleep another hour

-> grep for data in a directory to find specific files containing that data, then point those paths to another service

I can go on all day. CLI tools are far more wieldy than GUI tools IMO. CLI
tools give me a generally-stable interface (or at the very least, a
straightforward method of parsing and adapting to changes) and usually have
_way_ better documentation than GUIs.

~~~
shay_ker
Many of these actions seem like something you'd just never do in GUI though?
Except maybe some of the CSV stuff.

~~~
m_mueller
See, there is a reason don't do this in a GUI. For a short while it looked
like Apple's Automator would get there. Maybe Microsoft can crack this in a
couple of years if they go nuts with python as a GUI scripting language with
native OLE support.

~~~
jankiehodgpodge
Powershell is already there.

------
dspillett
Nice. I might have to try use it.

I use tmux (wrapped in byobu) a lot and tend to end up with one screen (on
each host I usual a fair amount) as a dashboard like this, manually
constructed from many panes each running a tool like iftop, watching a log
with "tail -f", or regularly running other checks via "watch", ...

~~~
sdan
Why do you use byobu? Just curious as I only use tmux.

~~~
dspillett
Habit as much as anything else. I used byobu around screen for a time before
switching to tmux. I've not looked into what tmux can do by itself, compared
to screen, without byobu's additions.

------
mjfisher
The list of modules
([https://wtfutil.com/modules/](https://wtfutil.com/modules/)) looks really
quite impressive. I can imagine getting some good use out of this

------
enriquto
I would appreciate a list of requirements. Does it only work on mac? What kind
of terminals can be used?

~~~
bogle
Also available as a Docker container:
[https://hub.docker.com/r/wtfutil/wtf](https://hub.docker.com/r/wtfutil/wtf)

~~~
enriquto
I do not really see the point of providing docker containers for tiny command
line programs. I feel like an old curmudgeon that cannot make sense of the
modern world; at all.

------
unixhero
You know. This _could_ be configured to be a, [really nice] poor man's
Bloomberg Terminal.

Yikes! Hold my beer! This will take all weekend.

~~~
kilroy123
If you do configure some kind of Bloomberg Terminal, please share!

------
MrCharismatist
Google Apps/Calendar but no CalDAV for those of us who left the google
mothership takes away a big reason I'd use this.

~~~
brbrodude
It's FOSS though, if devs swarm it with contributions anything is possible ;P

------
atarian
Why are so many of these command-line tools/dashboards written in Go?

~~~
hultner
I haven't used Go much but I've gotten the impression that tooling is very
good, it's easy to create a self-contained executable and startup time is low.
All this while the language itself aims for simplicity and doesn't include a
plethora of features rarely used or needed creating an almost python-like
simplicity.

~~~
tamrix
I can't be the only one. I just don't see a lack of features being a feature.

You can easily statically link most languages by passing switches to the
linker.

Python like simplicity is a far stretch. Golang basically just C with co
routines and some of the annoying syntax cleaned up.

~~~
ibly31
Lack of features hasn't stopped C from being an extremely useful and prolific
language.

Your last sentence, to me, reads as a pro rather than a con. C + coroutines -
bad_syntax = Great language to me.

Mind you, I don't use Go in a professional setting, so take what I say with a
grain of salt.

------
thanatropism
This actually looks really useful if you have multiple screens. (I tend to
type on my laptop connected to a monitor above it.) I keep concocting shell
prompts that are more and more complicated (current git branch, IP, python
virtualenv and so on and so on) -- this might just be the ticket to stop
wasting time on that.

------
Kaiyou
My first impression was that it looks cool, but than I tried to think of a use
case and failed. It still looks very cool, though. If I want to look anything
up I just look it up, no need for something to run somewhere to occasionally
glance on.

~~~
stjohnswarts
You're probably not the typical user. This comes in handy for someone who
always has a bunch of data inflow like a sysadmin, devops, tools person, etc.
Or just an overworked programmer.

~~~
Kaiyou
No, sorry, I was unclear. I do see the need for a dashboard (at work), just
not for monitoring the things this one offers. And for my private workstation,
which I was thinking of when posting before, I don't see the need.

------
hnarn
This pairs very neatly with cool-retro-term[1] :-)

[1]: [https://github.com/Swordfish90/cool-retro-
term](https://github.com/Swordfish90/cool-retro-term)

~~~
Exuma
Someone please install this and try it and take a screenshot. I just want to
see it but don't want to do it myself haha

~~~
cmg
Here you are. This is the standard config file with Euro time removed and
fewer US timezones represented. I've blocked out my IP info.

The terminal size in cool-retro-term is around 30x140-ish.

[https://imgur.com/yb0G39m](https://imgur.com/yb0G39m)

~~~
hnarn
Did you anonymize the entire image? Because the text is not supposed to look
like that (i.e. unreadable).

~~~
cmg
Interesting! If I have cool-retro-term on my external display (27" Thunderbolt
display at 2560x1440), it's all messed up like that.

On my MacBook Pro's built-in display, it looks like this:
[https://imgur.com/BbVcyA7](https://imgur.com/BbVcyA7)

------
rpmisms
Why does everyone feature a world clock in their information dashboards? Yes,
it's a handy feature to have, and yes, it's easy to build, but very few people
actually use them.

~~~
calvinmorrison
very useful for multi-time-zoned projects. Working with overseas times means
you get good at mental translation but with daylight savings, people moving
around, new people on the project, etc - it becomes very handy.

One of my favorite clock related features is in KMail where it says "Senders
current time", which is often helpful as well.

------
roryrjb
Does it support the mouse? I didn't see any mention of it and I haven't tried
it yet. If not then I think this would be unusable for me. I live inside the
terminal and use Vim, tmux but once a TUI gets quite complicated (another
example for me is wee-slack plugin for wee-chat or multiple accounts in mutt)
I struggle a bit and find I'm faster in a GUI.

------
darekkay
This is really impressive. I'm currently developing a web-based personal
dashboard [1] and I'm sure WTF will provide me a lot of inspiration here and
there :)

[1]
[https://github.com/darekkay/dashboard](https://github.com/darekkay/dashboard)

------
kup0
I like this. Might actually use this as an always-on dashboard on one of my
spare PCs. Probably could find a neat use for it.

------
andrewbinstock
Does it run on Windows? I can't tell if the lack of Windows binaries is
because the author didn't compile it/test it for the platform or because for
some reason it won't run there.

For a desktop project, supporting the OS of 60+% of desktops would seem a boon
to adoption (putting aside the politics and all).

~~~
senorprogrammer
Windows support is being tracked in issue #103 on GitHub. People have had
success building from source. Automated Windows builds currently fail for
reasons unknown.

------
BeetleB
How does this compare with conky?

------
synunlimited
Something very similar that I've used in the past
[https://github.com/notwaldorf/tiny-care-
terminal](https://github.com/notwaldorf/tiny-care-terminal)

------
brbrodude
I'll definitely be trying this one out <3 Thanks for this work

------
Gys
Reminds me of [https://getbitbar.com](https://getbitbar.com) to 'Put anything
in your Mac OS X menu bar'

------
aluenakyla
This is great. Probably one of my favorite things shared on HN in a while.
Great job!

------
SergeAx
I am curious why the binary is so large? Almost 60Mb, bigger than Docker.

------
champagnepapi
This is super cool! Thanks!

------
ausjke
wow this little CLI made my day! just installed it and used sample.conf and it
already looks great, will customize it later but this will be used often by
me, as I live and breath with CLI daily

------
cosmotic
Also an option: a real GUI

------
rhacker
It's odd that I can't find what "WTF" stands for, and if the F stands for the
F-word, that's just pretty ghetto.

Aaaand confirmed on the glossary page. I mean couldn't it have been something
clever like "Wednesday Thursday Friday" ?

------
deadbunny
Only takes x11 color names and not hex? wtf.

~~~
senorprogrammer
The underlying libraries WTF is built upon use colour strings to define
colours, so WTF does too.

But this is a cool idea. Issue #546 has been opened for this.

------
ephaeton
Obviously written by someone who is not living on BSD, and doesn't know about
wtf(1) :(

~~~
deadbunny
Good thing the binary is called wtfutil because of this very reason.

~~~
ephaeton
not what I was getting at. I'm aware it's wtfutil on the cmdline. I was rather
sort of amused that, say, I write a 'least squares' utility, call it 'ls' and
have it be invoked by calling 'lsutil'.

...anyways, moving on with my life...

------
buckminster
There's a detailed screenshot but I can't zoom to see the detail because the
website designer has gone the extra mile to make it non-zoomable. Why do
people do this?

~~~
johnisgood
I do not know but I encountered this more often than not. Direct links to
images are a rare occurrence in my experience. I usually just right click on
the image, then click on "Open Image in New Tab" which will get me what I
want. Off-topic but: was it not Google that tried to work around this so one
could not do even this in the search results?

~~~
n8henry
Google removed that functionality because of a settlement with Getty.

~~~
giancarlostoro
That is awful and fundamentally flawed. If it's on my device, I can save it.

Edit: Come to think of it, if it's on my device, it's already saved in some
way, shape and form. Clearly nobody technical at that company made that
decision to sue Google.

What Google should of done is offered to advertise that an image is available
to purchase...

~~~
dspillett
_> awful and fundamentally flawed_

Unfortunately the law often does not make objective sense. And even when it
seems to from your perspective, the way others interpret it does not.

 _> nobody technical at that company made that decision to sue_

Technical people can be arseholes too you know. Many patent trolls are
technical people, not just legal eagles, for instance.

~~~
MichaelApproved
> Unfortunately the law often does not make objective sense.

This isn't about the law. It's unclear if the law would require something like
this or not. Google decided not to find out by settling. The settlement terms
were up to the two companies to decide and were not mandated by laws.

------
drKarl
How does it compare to tmux or GNU screen?

~~~
caymanjim
You could run it inside a tmux window.

~~~
smitty1e
Needs an emacs mode.

~~~
abdullahkhalids
First thing I thought of was, can I run this in a shell inside emacs?

