sonar(6x)

okay so bestie πŸ’– you just opened the manual page for sonar(6x), which comes to you straight from the XScreenSaver manual β€” and yeah, we're reading the whole entire thing together, no skimming, no skipping the boring bits, because there are no boring bits, everything here is iconic. grab a snack πŸ“

✨ NAME ✨

sonar β€” displays a sonar scope. that's the whole assignment, and she ate. πŸ”₯

🌊 SYNOPSIS 🌊

sonar [--display host:display.screen] [--visual visual] [--window]
[--root] [--window-id number] [--ping hosts-or-subnets] [--ping-timeout
int] [--delay usecs] [--speed ratio] [--sweep-size ratio] [--font-size
points] [--team-a-name string] [--team-b-name string] [--team-a-count
int] [--team-b-count int] [--no-dns] [--no-times] [--no-wobble]
[--debug] [--fps]

(and yes, --debug is up in that synopsis with zero explanation and zero elaboration. she's just there. mysterious queen energy πŸ’€)

πŸ’« DESCRIPTION πŸ’«

So this program draws a whole sonar screen β€” like, the submarine kind β€” and it literally pings (get it?? 😭 THE PUN, that's the whole joke, i'm obsessed) the hosts on your local network, and then plots their distance (that's the response time) from you.

The three rings represent ping times of approximately 2.5, 70 and 2,000 milliseconds respectively. write those numbers down, they come back later. πŸ‘‘

Alternately β€” plot twist β€” it can run a simulation that doesn't involve hosts. no hosts, all vibes. πŸ¦‹

πŸŽ€ OPTIONS πŸŽ€

sonar understands the following options, and bestie, there are a LOT of them, so we're going through every single one, together, like besties do:

  • --visual visual β€” Specify which visual to use. Legal values are the name of a visual class, or the id number (decimal or hex, either one, we don't gatekeep) of a specific visual.
  • --window β€” Draw on a newly-created window. This is the default, she's the baseline. πŸ’…
  • --root β€” Draw on the root window.
  • --window-id number β€” Draw on the specified window.
  • --ping hosts-or-subnets β€” the list of things to ping, separated by commas or spaces. Elements of this list may be:
    • simulation β€” Run in simulation mode instead of pinging real hosts.
    • hostname β€” Ping the given host.
    • A.B.C.D β€” Ping the given IPv4 address.
    • subnet β€” Ping the local subnet. On systems where we can determine the local network mask, we use that; otherwise, we assume Class C (254 hosts).
    • subnet/NN β€” Ping a different-sized local subnet: e.g., subnet/28 would ping a 4-bit subnet (the nearest 14 addresses). On systems where we can determine the local network mask, we always use that.
    • A.B.C.D/NN β€” Ping an arbitrary other IPv4 subnet. The address specifies the base address, and the part after the slash is how wide the subnet is. Typical values are /24 (for 254 addresses) and /28 (for 14 addresses).
    • filename β€” Ping the hosts listed in the given file. This file can be in the format used by /etc/hosts, or it can be any file that has host names as the first or second element on each line. If you use ssh, try this:
sonar -ping $HOME/.ssh/known_hosts
  • --ping-timeout int β€” The amount of time in milliseconds the program will wait for an answer to a ping.
  • --delay int β€” Delay between frames, in microseconds. Default 20000.
  • --speed ratio β€” Less than 1 for slower, greater than 1 for faster. Default 1.
  • --sweep-size ratio β€” How big the glowing sweep area should be. Default 0.3.
  • --font-size points β€” How large the text should be. Default 10 points.
  • --no-wobble β€” Keep the display stationary instead of very slowly wobbling back and forth.
  • --no-dns β€” Do not attempt to resolve IP addresses to hostnames.
  • --no-times β€” Do not display ping times beneath the host names.
  • --team-a-name string β€” In simulation mode, the name of team A.
  • --team-b-name string β€” In simulation mode, the name of team B.
  • --team-a-count int β€” In simulation mode, the number of bogies on team A.
  • --team-b-count int β€” In simulation mode, the number of bogies on team B.
  • --fps β€” Display the current frame rate, polygon count, and CPU load.

okay so THIS part, in ping-mode: the display is a logarithmic scale, calibrated so that the three rings represent ping times of approximately 2.5, 70 and 2,000 milliseconds respectively.

Which means 😭 if any of the hosts you are pinging take longer than 2 seconds to respond, they won't show up. ghosted, blocked, not on the map. and if you are pinging several hosts with very fast response times, they will all appear close to the center of the screen β€” which makes their names hard to read. crowded around the center like a group photo. 🫢

πŸ› οΈ INSTALLATION πŸ› οΈ

For this program to be able to ping other hosts, it must have the ability to open ICMP sockets, and that requires that it be setuid root. Privileges are disavowed shortly after startup (just after connecting to the X server), so this is believed to be safe:

chown root:root sonar
chmod u+s sonar

πŸ’€ BUGS πŸ’€

Does not support IPv6. that's it. that's the whole bug section. short, devastating, slay.

🌱 ENVIRONMENT 🌱

  • DISPLAY β€” to get the default host and display number.
  • XENVIRONMENT β€” to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property.
  • XSCREENSAVER_WINDOW β€” The window ID to use with --root.

πŸ‘€ SEE ALSO πŸ‘€

X(1), xscreensaver(1), ping(8), ping6(8)

Copyright Β© 2000-2022 by Jamie Zawinski jwz@jwz.org Copyright Β© 1998 by Stephen Martin. smartin@canada.com

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

πŸ‘‘ AUTHORS πŸ‘‘

  • Stephen Martin smartin@canada.com, 3-nov-1998.
  • Subnet support, etc. added by Jamie Zawinski, 17-Jul-2000.
  • Rewritten using OpenGL instead of X11 by Jamie Zawinski, 12-Aug-2008.

and that's the whole page bestie, you made it to the end, gold star ⭐ okay so this whole thing is X Version 11, 6.17-1.fc44, dated 13-Oct-2026 β€” so go run it, go ping something, and remember: setuid root privileges get dropped right after the X connection, so she's safe fr fr. bye bestie πŸ’–πŸŒΈπŸ¦‹

πŸ“¦ where this page comes from