Clock & Date
Second-accurate display with weekday names.
A modular desktop widget that lives permanently on your desktop – with clock, live CPU/RAM, network, internet speed test, LAN scanner, notes, Chrome/Edge favorites and configurable support links. Pure Python + Qt. Local. No account. No cloud.
Each module is its own Python file. Toggle it on or off with a click.
Drop new modules into the modules\ folder.
Second-accurate display with weekday names.
Live bars for CPU and RAM with a color gradient – read directly from the system via psutil.
Real-time download/upload. Bars rescale rolling against the maximum of the last 60 seconds.
Simple notes field, stored in notes.txt right next to the program.
Reads your bookmarks from all profiles, with search field, pin function and a "most used" indicator.
Collects one data point every 15 s in the background into a local SQLite file. Viewable as a day/week/month chart.
Rotating cyan/magenta/green gradient. Colors and speed are freely configurable in settings.json.
Always stays below normal windows, never appears in the taskbar – yet remains permanently visible on the desktop.
No telemetry, no cloud, no sign-in. All data stays on your PC.
Finds every active device on your LAN, automatically every 30 min (only while the PC is idle). Online pulses green, offline shows "gone for X". Web servers are detected – even cameras that don't reply to ICMP. Left-click on a card opens the device's web page, right-click opens the full menu (open web page, ping, note/login, label, remove). Custom names + credentials per device, popup for new devices, active Wi-Fi connection plus connecting to other networks straight from the dashboard.
Button at the top left of the title bar. A click opens a centered window with live values for ping, download and upload. While the test runs, the button pulses. After the test, the result stays in the button (e.g. 12 ms · 250↓ · 30↑). Runs automatically every 30 min in the background – but only while the PC is idle (CPU < 30%, RAM < 80%). Engine: speedtest-cli.
Configurable list of help links. Empty by default – pick from a menu (Dell, HP, Lenovo, ASUS, Acer, Apple, Microsoft Windows/Office/Account/Outlook/OneDrive, A1, Magenta …) or add your own. Right-click: edit, reorder, remove.
Right-click a Chrome/Edge favorite → Edit note / login. Three optional fields: display name, user, free-form note. Entries with data get a 📝 badge. User name copies to the clipboard on click. Passwords are deliberately not stored – use the browser's password manager for that.
Via ☰ → "Set up for all users…" the dashboard creates an autostart entry in HKLM, so it launches for every user on the PC (one-time UAC). Each individual user can opt out for their account: extra menu item "Do NOT start on this account". Per-user opt-out lives in HKCU.
Save all your settings, notes, favorite counters, support links and known network devices as a ZIP to any location – and restore them just as easily. Before any overwrite, a .bak backup is created.
You can toggle every module in the dashboard via the + button.
Time, weekday, date.
CPU/RAM with live bars and color gradient.
Download and upload rate, plus totals since start.
Notes field, saved locally as notes.txt.
Browser bookmarks with search, pin, top 10 by clicks, note/login per entry (right-click).
Like Chrome, but for Microsoft Edge.
Find LAN devices (ping + ARP + DNS), auto-scan every 30 min only on idle PC, pulse effect during the scan, popup for new devices, Wi-Fi status & switching.
Configurable list with presets (Dell, HP, Lenovo, Microsoft …) and your own links.
PROJEKTINFO.md.
No sign-up, no ads. Grab the ZIP, unpack it, run
start.bat. Done.
approx. 40 KB · ZIP archive with source code and start scripts
Prefer individual modules? → go to module overview
– visitors · – downloads
If not already installed, get Python 3.10 or newer from python.org. During installation, tick "Add Python to PATH".
Open a command prompt and run:
pip install PyQt5 psutil speedtest-cli
Extract the contents to C:\Ball\Dashboard (or any other folder of your choice).
Double-click start.bat. The dashboard appears on your desktop. From the ☰ menu you can add it to Windows autostart.
Answers to the questions that come up most often.
A small program for Windows that pins a window permanently to your desktop (always behind normal windows). It runs so-called modules – clock, CPU/RAM, network, notes, browser favorites – which you can freely combine.
Windows 11 (often works on Windows 10 too), Python 3.10 or newer, the packages PyQt5 and psutil. Less than 100 MB of disk space in total.
In the dashboard, click the ☰ menu and select "Start with Windows". An entry is then created in the registry under HKCU\Software\Microsoft\Windows\CurrentVersion\Run. You can disable it the same way.
Click the + button in the title bar. A list of all available modules appears with checkboxes. Tick or untick, done. To add your own modules, drop a .py file into the modules\ folder and pick it up via ☰ → "Reload modules".
Nothing goes online. All data lives strictly locally in the program folder: settings.json for position/size/modules, notes.txt for notes, bookmark_stats.json for your pin/click counters, stats.db for the history.
Just double-click start.bat again. If autostart is on, it will come back automatically at the next login anyway.
The dashboard has single-instance protection: a second launch shuts itself down automatically. If two windows are still open, close one via the ☰ menu → "Quit".
Yes. In settings.json you'll find border_color_a, border_color_b, border_color_c and border_speed_ms. Set hex colors, save, restart the dashboard.
Grab the left side of the title bar and drag to move the window. Resize from the bottom-right corner (resize grip) or via the two small +/− buttons on the right edge.
In the ☰ menu → "View history…". You can switch between day, week and month and use ‹/› to scroll through time. Use the "Today" button to jump back to today.
Disable autostart in the ☰ menu, then close the dashboard and delete the folder (e.g. C:\Ball\Dashboard). No files are written outside this folder – except for the registry entry mentioned above, which is removed from the same menu.
Yes. Free for private and commercial use. No ads, no telemetry, no subscription. If something doesn't fit your needs: just edit the code – it's plain Python.
Python was installed without ticking "Add Python to PATH". Either reinstall Python with that option enabled, or call pip with its full path, e.g. C:\Users\<YOUR-NAME>\AppData\Local\Programs\Python\Python312\Scripts\pip.exe install PyQt5 psutil.
For troubleshooting, run start_debug.bat once – it opens a console window with the full message. Send me the output by email and we'll find the cause.
The network scanner pings every address in your local subnet in parallel, reads the ARP table for MAC addresses and does reverse DNS for the hostnames. The result is a list of your devices. Enable it via + → tick Network scanner. An automatic scan then runs every 30 minutes; you can trigger a manual scan with the ⟳ Scan button at the top right of the module.
As soon as the scanner finds a device it has never seen (and it's not the very first scan), a popup opens in the middle of the desktop with IP, MAC and hostname. You can immediately give it a custom name – e.g. "Printer Living Room" – or click "Later" and set the name afterwards via right-click on the card.
In the network scanner module you'll see your active Wi-Fi at the bottom. Click "Available ▾" and the networks in range appear (sorted by signal strength). For known Wi-Fi profiles, a click connects directly; for unknown ones, a password dialog (WPA2-Personal) appears. As a fallback, the ⚙ button opens the Windows-native Wi-Fi list in the taskbar.
Click ☰ → "Create backup…". A save dialog opens (suggested location: Documents) and a ZIP is created with all settings, notes, favorite counters, known network devices and the CPU/RAM/network history. To restore: ☰ → "Restore backup…", pick the ZIP, confirm. Existing files are saved in parallel as .bak before being overwritten.
Yes. Create a backup on the old PC, copy the ZIP to the new PC, install the dashboard there, and restore the backup via ☰ → "Restore backup…". All settings, custom device names, notes and favorite counters carry over. Restart the dashboard once afterwards.
Left-click directly on the device's card opens the browser at its address. If the scanner detected a web server (port 80, 443, 8080 or 8443), exactly that URL is opened – otherwise http://IP/ is tried. Via right-click → "🌐 Open web page" it's available from the menu as well.
Some cameras/IoT devices ignore ICMP ping. After each sweep the scanner therefore additionally checks for all already known IPs whether a web server responds. If one is found, the device is marked as online – even without a ping reply. This only works for devices that have already been registered; new ICMP-silent devices don't show up by themselves.
Yes. Right-click a card → "📝 Edit note / login". There you can save username, password (with show/hide toggle) and free-form notes. When you then open the device's web UI, a small overlay appears at the top right of the desktop with user + password and copy buttons – perfect for quickly pasting them into the browser. The overlay can be collapsed/expanded (▾/▸) and closes automatically after 90 seconds (or via ×).
In network_devices.json right in the dashboard folder. The values are stored in plain text – the dashboard is a local tool that doesn't send anything online. The file should therefore not be shared publicly. Via "Create backup…" it is automatically included in the backup ZIP and travels to another PC with it.
At the top left of the title bar sits the 🚀 Speedtest button. A click opens a centered window with live values (ping, download, upload). While the test runs, the button pulses. When done, the result stays in the button (e.g. 12 ms · 250↓ · 30↑) until you click again. In addition, a silent background test runs every 30 minutes – but only while the PC is idle (CPU < 30%, RAM < 80%). Engine: speedtest-cli – install once via pip install speedtest-cli.
Enable the Support links module (title bar + → tick). In the module, click "➕ Add ▾": a list of ready-made presets appears (Dell, HP, Lenovo, ASUS, Acer, Apple, Microsoft Windows/Office/Account/Outlook/OneDrive, A1, Magenta, HP printer drivers). At the very bottom, "✏️ Custom link…" for a free name + URL. Right-click on a link opens: Open, Edit, Move up/down, Remove. Stored in support_links.json.
☰ → "Set up for all users…". Windows asks once via UAC for admin rights and creates an HKLM\…\Run entry. With that, the dashboard starts for every user signing in on the PC. Each individual user can opt out for themselves via ☰ → "Do NOT start on this account" (sets an opt-out flag in HKCU). Important: for this to truly work for everyone, Python must be installed for all users (e.g. with the official installer and the "Install for all users" option) – otherwise the launch only succeeds for the user whose profile holds Python.
This happened in an earlier version: if a device returned no MAC address on the first scan (some IoT hosts don't reply to ARP), it was stored under ip:<address>. As soon as a MAC became known later, a second entry mac:<x> was added – and the old one remained visible as "offline". The current version merges both entries automatically; on load, a one-time cleanup routine also runs across the entire file.
Holger Sahler
Unteres Vand 129f
6793 Gaschurn
Austria
Email: [show email]
This website is provided solely to make the "SAWAS Dashboard" software available.
Use of the "SAWAS Dashboard" software is entirely at your own risk. No liability whatsoever is accepted for any direct or indirect damage to your computer, operating system, installed software, or for any data loss that may arise in connection with the installation, configuration or operation of this software.
The software is provided "as is", without any express or implied warranty of fitness for a particular purpose, availability or absence of errors. The user is responsible for their own backups and for assessing the software's suitability in their respective environment.
As of: 2026