Hacker News new | past | comments | ask | show | jobs | submit login
WTF – A personal information dashboard for your terminal (wtfutil.com)
518 points by jcamou on Aug 28, 2019 | hide | past | favorite | 174 comments

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). +1 if I could use the terminal emulator of my choice so cool-retro-term (https://github.com/Swordfish90/cool-retro-term) could make it look like the screen is about to melt.

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.

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.

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.

Your login screen could be a 3d game where you have to solve a puzzle to access the password prompt.

QuakeDM =]

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

Well, neat, but why would sampler call a series of vertical bars sparklines?


In 2006, the term sparkline itself was introduced by Edward Tufte for "small, high resolution graphics embedded [inline] in a context of words, numbers, images". Tufte described sparklines as "data-intense, design-simple, word-sized graphics".

See the Usage section for an example.

It's GPL v3.0, so no weird license at all.

EDIT: A closer look revealed that it had indeed an unusual license just 22 days ago. It's GPL v3.0 now.

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?

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 but I feel like that's a pretty hacky solution haha.

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.

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

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

It is a productivity thing. CLI tools have consistent interfaces and once you are familiar with the common tools and workflow, it is considerably faster to do what you are looking to do. One particular trait that has personally made my workflow a lot faster is being able to repeat a command from history (by pressing Ctrl-R) and then writing only part of the command to run it. It saves a lot of time and makes it less cumbersome to type in very long commands.

Now to contrast this with GUIs, even the simplest things would require me to jump through menus, type some stuff, etc. Everything in the command line is precise and repetitive steps are easy to replicate.

Piping is another aspect that the command line enables, which basically feeds to output of one command into another. One common example of this is to look at lines of a log file that contain a certain set of words: `cat log.txt | grep "[ERROR]"`.

But perhaps the strongest selling point of working in the command line is consistency among tools. If you want to be productive as a developer, use of various tools for doing various tasks is common. Using the CLI for all these tools keep everything a few commands away, even interoperability is enabled seamlessly due to piping and consistency.

So yes, there is a fairly steep learning curve, but in my opinion learning how to use CLI tools over GUI is well-worth the hassle.

> But perhaps the strongest selling point of working in the command line is consistency among tools

Isn't this.... not true? A lot of the *nix commands have strong consistency, yes, but there are many commands that are just designed poorly and you can't easily pipe them. And what about widely used tools like Google Docs? How could that have a consistent interface in a terminal?

Google Docs is not for development, perhaps I should have been clearer about that. The vast majority of tools for development, devops, system/network administration are consistent, or at the very least consistent enough that it helps towards making the workflow more productive.

Not all software is suited for the terminal, that should be obvious. Like you would not want to play a graphically intensive game on the terminal because... graphics.

Since you brought it up, what use-case do you have with piping Google docs exactly?

I mainly brought up Google Docs because it's something that many of us use that breaks us from "living in the terminal". Someone who "lives in the terminal" would want all of Google Doc's functionality, but in a terminal. In theory, I should be able to grep & sed a Google Docs page for some things.

> Not all software is suited for the terminal, that should be obvious

Like wtfutil, the very thing that's linked here on HN???

> > Not all software is suited for the terminal, that should be obvious

> Like wtfutil, the very thing that's linked here on HN???

IMO the only significance of it running in the terminal is that you can assume it's reasonably performant without digging into comments to see if people are saying 'Cool but Oh God, Electron?'.

If I were creating it, I would be choosing between Electron and ncurses-wrapping library for whatever language I wanted to use. Then I'd choose the ncurses-wrapping library, because, well Oh God Electron.

Sure, it could be a native GUI, but then I'd have to learn about that for every platform I wanted to release on.

Sure, it could be Qt or GTK, but I've only used them once each briefly and in anger, and again, no desire to learn.

Point is it doesn't need to be in the terminal because no you're not going to feed stuff in and redirect its output, but it certainly does it no harm, and the terminal's an easy development target.

What exactly is the alternative to the tool linked here? I am really curious to see because I have never come across an open source resource-lite customizable dashboard such as this. As someone who has his entire workflow on the terminal, this tool is of great interest to me.

> I mainly brought up Google Docs because it's something that many of us use that breaks us from "living in the terminal". Someone who "lives in the terminal" would want all of Google Doc's functionality, but in a terminal.

People who live in the terminal does not literally mean that they spend 100% of their time on the terminal fyi. I doubt anyone does in this day and age, I was under the impression that that fact was implied.

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.

But this application loses all those benefits, since it's just a GUI that happens to be displayed in ASCII on a terminal.

I would imagine if someone sat down to create a dashboard for the browser, it would take as much if not more work, and building interaction with each element would be a whole new thing altogether.

I think the purpose of a dashboard is not to give you detailed interactions, but to let you know the status and you can take actions outside the dashboard as you like.

Moreover, not so sure about this application but you can always have key shortcuts to take you to run a default task for one of the sections of the dashboard. Hence, imo, there is no real loss of functionality here.

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

-> 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.

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

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.

Powershell is already there.

All of these actions are things which can be done in a GUI, just definitely not at the scale mentioned... certainly not at the scale mentioned and in a time-efficient manner

Right exactly, they'd just be unreasonable to do in a GUI. But what about Google Docs? Admin tasks? Emails? Slack? Code review? Calendar meetings?

I work with React Native:

1st I setup a script to start an emulator (iOS and Android), build and deploy an app to emus, start development JS server, open vim and split the window to have a terminal ready for anything else.

2nd I automated asset creation when I receive SVG from design - it automatically generates 3 different asset sizes (as required by iOS), compresses them, moves them and names them correctly.

That's just the beginning...

Virtually anything you need (or want) to do more than a small handful of times.

Key elements of a decent shell tool are varables, pipes, loops, logic, and parameters.

This ranges from the bog-simple (an xmessage "tea timer" that pops up a reminder after a few minutes to tell me my tea is steeped), to complex scripts.

Things I've run from a shell include downloading and analysing 50,000 G+ profiles for most recent activity, literally a "bash on-liner", as described here:


Resizing or modifying images via Imagemagick (scales to however much time and disk space you have), converting files from one format to another, generating lists of stuff for further analysis or conversion, updating a whole slew of documents in one fell swoop, creating and listening to playlists of local or remote content with mpv.

You've got a ton of small, simple tools which can be combined flexibly in virtually any way you want. That's a lot of power.

I do both, all the time. I always have at least two different browsers open and several productivity apps. And an iTerm window with several tabs, or if I'm doing sysadmin-y stuff then several such windows.

For me the terminal is mostly used for these things:

1) A stable/reproducible Linux environment in which to test and run code.

2) A place to use UNIX tools to quickly do things that would take a long time, or maybe not be possible, in my (fairly large) collection of GUI apps. In particular one-off searching and manipulation of text files, log streams, etc.

Plus if I want to make small edits to a file, I can do this faster in vim than in TextMate or Sublime. And I sometimes run apps like "calc" in my terminal out of habit. YMMV on that kind of stuff, but for the two reasons above, if you are a developer of server software then this is much of your life.

I prefer to use GUI apps for some things, but I totally get it that others don't. Once you're at home in the terminal, it's tempting to want everything to live there. But if you're like me and prefer a GUI client for source control, you can easily have both!

Familiarity and low resources needed .. I can use a $5/year natted VPS and program (via Git/Vim), run scripts, surf the web (links), chat on IRC (Weechat) and continue my Tmux/Screen workflow on basically any *nix machine with at least ~16MB memory.

How beneficial is surfing the web in 2019 with links? I was just using it yesterday on a raspberry pi zero and couldn’t download go from the very minimal golang.org site. I couldn’t imagine trying to use it day to day.

indeed.. I don't do much more then the casual searching on DuckDuckGo and viewing Wikipedia articles and StackOverflow errors.

why do you need to use low resources?

Easier to access / run things on remote systems.

Possible to create tools for use on small systems -- your DSL/Cable modem, say, which is really Just Another Linux Box, though with tiny capacity.

Smaller VMs -- less system load, more available, greater flexibility.

Run a shell on your Android or iOS device. Full power of the shell, scripting, and development tools.

You can do more of whatever it is you want, faster, using less. It's an efficiency thing.

Natted VPS's are usually very cheap (~$5/year) are low on resources by design and are great for pure terminal workflows.

I have RSI in my mouse hand from pointing and clicking so much and basically my index and middle finger are constantly inflamed. The only thing that makes the swelling go down is icing, ibuprofen, and not using a mouse.

Randomly, if you aren’t already doing so, fully submerging your hand in a container of ice water for no more than a couple minutes several times a day (ask your doctor!) is a particularly effective tendinitis icing strategy. It’s also perhaps the most painful things I’ve ever done. But it treats tendon swelling like nothing else.

I know product manager that uses a pen & touchpad to navigate websites for exactly this reason

Faster reading: everything uses the same font, size, color and position on the screen. Your eyes don't have to constantly scan for different graphical elements across applications.

(if this sounds far-fetched, try reading a book with a different font for each paragraph for 4 hours)

Faster interaction: no dreaded mouse needed.

UI speed: terminal application are rarely slow at it.

Consistency: Works on local and remote hosts over SSH.

Force of habit... I'm not really sure how I made the move, I grew up on Macs but moved to Linux (for the FREEDOM), and gradually all the GUI apps just fell away. I have a PDF reader and a browser and I think everything else is in the terminal. Occasionally I'm forced to use a Mac or Windows machine in professional situations, and it just annoys the fork out of me. I just prefer typing, and I have all the commands I need memorized to an embarrassing degree.

I also appreciate the resource usage. My personal laptop is a Lenovo from 2009, and it never feels slow. It is slow for some things, like compilation, but it never feels laggy in the way a GUI can.

I would never recommend to anyone that they go down this road. It's silly to think how many hours I spent learning what I know, and the main effect is that nobody but me can use my computer and I barely know how to work anyone else's. I'm wicked fast on VIM and that looks cool and all but... the bells and whistles in something like VS Code probably help more in the day-to-day as a developer. But I can't use it. I feel completely lost when I can't Control-Z and git grep, or whatever. I don't even know how to quit a GUI programme anymore.

Become a developer, then you will understand. It is like asking why mechanics have a lot of tools around them.

Developers don’t need to be super terminal centric. Common sense alone would dictate tons aren’t.

This is the most zaney gatekeeping I've seen, even for HN standards

Everything can be done with the keyboard and is generally scriptable, leading to high productivity but also superior ergonomics is a big part for me.

My wrist joint have a tendency to crack loudly (not sure if this is the correct English term), which feels unpleasant and have been a driving reason for me personally to avoid the mouse unless absolutely necessary. Additionally to basically living in my terminal I use vim bindings in my browsers and replaced my caps-lock with the Hyper-modifier* allowing me to control almost all parts of the operating system from my keyboard and mostly from my home row.

* https://github.com/suliveevil/Capslock

> Everything can be done with the keyboard

This is it for me, really. Whilst it makes it me two or three orders of magnitude slower when I have to "drive" someone else's machine, not having to switch to a mouse/trackpad really just smoothes things over and prevents jumping me outside of my "zone".

Thanks for the project on Github. Seems like it has some more ideas and easier already configured things over my usage of karabiner elements just for hyper key. Though I use Hammerspoon for shortcuts already.

Using a mouse / pad break the flow, makes you move your hands out of the keyboard inducing delay (positing on the mouse, repositioning on the keyboard). Usually point and click takes more time than a shortcut. Makes you more prone to Carpal Tunnel Syndrome. For me it's mostly about comfort than productivity, productivity is a nice side effect. As a coder I don't spend most of my time typing code but thinking and reading so pure typing speed is non relevant for productivity.

That's one reason; familiarity is another.

Depending on when and how a person started out with computers, there may have been no GUI available. My university was just getting connected to the internet about a year or so before the the web came into being. I picked up a VT125 terminal and a 1200 baud modem from ham radio flea markets, and used that setup over dialup for a couple years. No GUI, all text; programming assignments, email, web in a text browser when that was a thing, NNTP.

interfaces change less

this actually makes sense to me

It's almost ASMR for me to work in the terminal.

Nerd cred.

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", ...

Probably the most useful piece of software I've ever glued together was a tmuxinator script to bring up a dashboard that monitored system health using curl and displaying status of each subsystem in large red/green words using figlet.

Took me a night of work to get it right but it ran on a monitor in our engineering area, and one Quality/Ops peoples desktops for years.

Checkout fswatch as a watch replacement. It triggers on file changes. I automated a few things for monitoring using that and found it to be a much smoother experience since it’s updated immediately and only as needed.

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

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.

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

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

The repo is https://github.com/wtfutil/wtf/. I'd guess at it supporting macOS (brew installation) and Linux (commit messages).

I cannot get it to compile in linux. I would like to know if it is supposed to, before digging any further.

The releases include Linux binaries: https://github.com/wtfutil/wtf/releases

  $ uname -a
  Linux hostname 5.2.9-arch1-1-ARCH #1 SMP PREEMPT Fri Aug 16 16:24:43 UTC 2019 x86_64 GNU/Linux
  $ git clone https://github.com/wtfutil/wtf
  $ cd wtf
  $ make
  $ ./bin/wtfutil
seems to work fine here

Also available as a Docker container: https://hub.docker.com/r/wtfutil/wtf

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.

It's highly likely this won't work as-is, unfortunately. Docker support is "experimental" at best and a lot more effort needs to be put into the Dockerfile.

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.

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

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

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

Feel free to open an issue on it. CalDAV is a great idea.

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

Even though I'm not a fan of go myself, it does work well for small, simple utilities - it's lightweight, fast, and compiles to self-contained executables, with no dependency on a runtime like Node.js, Python, or a JRE.

There are some other languages that have similar benefits, but go is the most popular and trendy. Rust could fill a similar niche but GC is very nice and Rust definitely has a higher learning curve.

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.

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.

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.

...only in the HN bubble. Most of the hyped stuff stays around a couple of years and dies.

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.

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.

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.

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.

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

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

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

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.


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

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

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.

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.

It was added because I have co-workers in five different timezones and servers that use UTC. It's handy to have that info at a glance.

IT projects be it open source or closed source often span the US, Asia and Europe.

After a while you memorize the time zone differences. But to be sure and take daylight savings in account world clocks are not bad.

I use a world clock every single day.

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.

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

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.

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).

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.

I'm currently using it without many issues under WSL.

How does this compare with conky?

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

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

Reminds me of https://getbitbar.com to 'Put anything in your Mac OS X menu bar'

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

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

This is super cool! Thanks!

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

Also an option: a real GUI

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" ?

Only takes x11 color names and not hex? wtf.

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.

Yeah, this makes it unusable on my terminal because I have a custom color scheme.

The background of the borders matches my terminal while I can't get the background of the widgets to match because of this.

EDIT: Hah, specifying "transparent" makes it work

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

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

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...

that utility always amuses me. as BSd is the only distro i use where i don't run into the need for it so much :D goo call though. name collisions on packages can be painful.

However, you run this thing as ./wtfutil though if i look at the documentation, so no worries on the package name in the cmdline really.

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?

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?

Google removed that functionality because of a settlement with Getty.

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...

> 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.

> 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.

I think it is a misguided attempt at making the content dynamically adjust to the device proportions, so the screenshot is large but not overlarge (over screen size) on mobile and desktop devices of different orientations. A laudable goal, if badly implemented (I can't scale at all on mobile, it distorts oddly when I zoom on desktop).

Either that or deliberate user filtering: if you can't figure out right-click (or long press) then "open in new tab" on your own, then maybe you are not the class of user the creator wants to support :-).

I doubt the inconvenience is deliberate, more a side effect of some other design consideration. There are smaller images on each of the widget description pages (though they also scale oddly in places) which in total provide more detail than that one image. Perhaps drop the author a polite message suggesting that they include a "view full image" link near the screenshot on the opening page or with the image itself as the mouse target?

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?

And why do they disable native scrolling? Apple spent hundreds of man hours to get scrolling just right in iOS, why override the OS?

You can't even scroll the page if it has a code block on it.

On most desktop browsers you should be able to right-click the image and display it in a new tab which then lets you zoom any way you want.

On Android there is a setting to always enable zoom.

That doesn't help me with scrolling the page in any way.

I agree. There's an open issue for this in the `wtfdocs` repo. If you have any thoughts on what's causing it, please drop a message in there.

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

It's my understanding that this HTML is (mis)used to reduce tap-delay on mobile devices:


That's doesn't excuse it, of course.

I think it's boilerplate that ends up pasted into a lot of websites.

I have no clue why people downvote you, as this is exactly the reason this page is not zoomable. In my humble opinion people doing stuff like this should be forcefully separated from the process of creating web sites.

There’s reasons for doing it, though. For example, iOS Safari likes to zoom past 1.0 slightly when focusing an input and doesn’t zoom back out to 1.0 when unfocused. This often leaves users in a slightly zoomed in state which means they can easily miss right side aligned buttons and content. Setting the maximum scale to 1 in the viewport prevents this.

Zooms just fine in mobile Firefox.

It's a good thing when the makers of a browser actually care about the user.

I've deleted the 'max-scale' and 'user-scalable' values from the meta tag. Let me know if that helps at all.

The site still can’t be scrolled past the opening image easily on Safari iOS, but the initial image can now be zoomed - thank you!

Zooming works fine here. Mobile Safari iPhone SE.

That's because Safari disregards this option, as it is hostile towards users.

The site does mess up inertial scrolling on iOS Safari though.

Thanks for this comment. I think you might have just solved issue #33 in the wtfdocs repo.

Internal scrolling works fine here.

I think it was fixed. It’s working just fine now, but it was borked when I posted the comment.


Same, Firefox on linux can't zoom the image. Right-click 'View Image' does provide a standard zoomable image, but why make me work to see if your product is of use/benefit to me?

I am on Linux on Firefox and I can zoom... Ctrl + scrollwheel. Or am I missing something?

I've always understood user-scalable="no" to apply only to mobile/touch devices and their pinch-to-zoom functionality. I can't remember an instance where Ctrl + scrollwheel and Ctrl + -/+/0 didn't work on desktop browsers.

I even disable that on Firefox Mobile cause I hate not being able to just Zoom. Don't assume it looks perfect for me without my consent.

I can zoom in on it just fine with Android Firefox.

They fixed the site.

Part of the site's default template. Bug #47 in the wtfdocs repo has been opened for this.

On Firefox (desktop and Android) I can zoom no problem. On desktop I have to view image first though others just the background zooms, on mobile it works exactly as expected.

I can zoom in desktop Firefox and can't in mobile Firefox. In addition on mobile screenshot is heavily distorted vertically.

In Firefox for Android you can force enable zoom in Settings => Accessibility.

Still doesn't fix the stretching of the image...

What do you mean that you can't zoom?

Do you mean you can't zoom the image or do you mean you can't zoom the site?

And on what combination of device, os, and browser can you not zoom the image/site?

On Firefox on Linux on my laptop I can ctrl+scroll wheel to zoom in and out of the site, or right-click on the image and select `view image` from the context-sensitive menu which opens the image in another tab and from there the cursor becomes a magnifying glass.

I was able to click on the screenshot to open it up in a modal, and that was zoomable.

Looks like it's now fixed.

On mobile, tapping the picture opens it in isolation, allowing you to zoom in on it.

It opens a smaller version in isolation that I still can't zoom

For others having the same issue, the image can be found in the github repo: https://raw.githubusercontent.com/wtfutil/wtf/master/images/...

You can't zoom it either

Came here to say this. Potentially interested but I've lost all interest because I can't zoom the page to actually look at the screenshot. I consider this bad behavior and I don't reward bad behavior.


Thank you for donating your 2¢

We understand you don't need to contribute anything to enjoy this comments section and therefore we do truly appreciate that you've found enough value to contribute to this endeavor!

It is better to give than to receive! Let me know if you want more, I can riff on this topic for...hmm... at least 250 words.

> Can you really say you're in open source, if...

...your source is open? Yeah, probably.

Its nice to get some money from a side project. Might make you work more on it.

yes, exactly. Why do musicians, who have a job (e.g. as a teacher) charge for concerts they give in their private time?

Sure, they invested time and money into into it, but they have a JOB which should pay their rent. Pretty rude for them to ask the audience to contribute back.


Wait, are you being serious? Im speechless

You mean it's shameful to receive money directly from the users, and respectable people must have an intermediary for it?

How does it compare to tmux or GNU screen?

It does not, this is a dashboard, not a terminal multiplexer

You could run it inside a tmux window.

Needs an emacs mode.

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

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact