diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-13 11:35:00 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-13 11:35:00 +0200 |
| commit | 3943e08dabe684b409a3ac99c9371fbeb5df5cdb (patch) | |
| tree | 7dcedbb2d64a04e59ab239a8c40c04f0f0cf29aa /bin/pubip-sample.sh | |
| parent | b2fe3f493efc12dd300f0e2b2ede5660ee70c193 (diff) | |
| download | conky-theme-udt-3943e08dabe684b409a3ac99c9371fbeb5df5cdb.tar.gz conky-theme-udt-3943e08dabe684b409a3ac99c9371fbeb5df5cdb.zip | |
The quickshell island's performance panel now shows CPU, RAM,
temperatures, the GPU, disks and network, and warns from the status
pill when something runs hot, fills up, or the public IP drifts from
the pinned one. Two dashboards drawing the same numbers would drift
apart, so the four widgets go, with the disks and public IP samplers.
The island keeps writing ~/.cache/udt/pubip.txt in the same format.
The freed space is left empty for the user to rearrange.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Diffstat (limited to 'bin/pubip-sample.sh')
| -rwxr-xr-x | bin/pubip-sample.sh | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/bin/pubip-sample.sh b/bin/pubip-sample.sh deleted file mode 100755 index c5100f8..0000000 --- a/bin/pubip-sample.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -# Fetch the public IP address into a cache file, for widgets/network.lua. -# -# Run from conky's ${execi} every 30 minutes. The draw hook must never make a -# network call: a hung request would block the Cairo draw and freeze the whole -# dashboard, and a residential address is stable for days anyway. -# -# Exits non-zero with a message on stderr when it cannot fetch, leaving any -# existing cache untouched rather than replacing a good address with an error -# page. - -set -u - -CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/udt" -CACHE="$CACHE_DIR/pubip.txt" - -umask 077 -mkdir -p "$CACHE_DIR" - -# The temp file sits in the same directory as the target: rename is only -# atomic within a filesystem, and the widget reads this on its own 2s cadence. -TMP="$CACHE.tmp.$$" -trap 'rm -f "$TMP"' EXIT - -# --max-time, not just --connect-timeout: a server that accepts the connection -# and then stalls would otherwise hold a curl process for as long as it likes. -if ! IP=$(curl -fsS --max-time 10 https://ipinfo.io/ip 2>/dev/null); then - echo "pubip-sample: fetch failed" >&2 - exit 1 -fi - -# Validate before writing. A captive portal, a rate-limit message and an error -# page all arrive with a 200 and would otherwise be written to the cache and -# drawn on the dashboard as though they were an address. -IP=$(echo "$IP" | tr -d '[:space:]') -if ! echo "$IP" | grep -qE '^([0-9]{1,3}\.){3}[0-9]{1,3}$'; then - echo "pubip-sample: response is not an IPv4 address" >&2 - exit 1 -fi - -# The epoch travels with the address so the widget can refuse to show a stale -# one. -{ - echo "ip $IP" - echo "fetched $(date +%s)" -} > "$TMP" - -mv -f "$TMP" "$CACHE" |
