aboutsummaryrefslogtreecommitdiffstats
path: root/bin/pubip-sample.sh
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-13 11:35:00 +0200
committerDanilo M. <danix@danix.xyz>2026-10-13 11:35:00 +0200
commit3943e08dabe684b409a3ac99c9371fbeb5df5cdb (patch)
tree7dcedbb2d64a04e59ab239a8c40c04f0f0cf29aa /bin/pubip-sample.sh
parentb2fe3f493efc12dd300f0e2b2ede5660ee70c193 (diff)
downloadconky-theme-udt-3943e08dabe684b409a3ac99c9371fbeb5df5cdb.tar.gz
conky-theme-udt-3943e08dabe684b409a3ac99c9371fbeb5df5cdb.zip
feat: system, gpu, disks and network move to the quickshell islandHEADmaster
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-xbin/pubip-sample.sh48
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"