A lightweight, modern Windows desktop utility for managing the built-in Mobile Hotspot in Windows 11 — designed as a full replacement for the native Settings page.
- QR Code Connect — auto-generated QR code on the Network Info tab. Scan from any iOS/Android device to connect instantly (standard
WIFI:T:WPA;S:...;P:...;;format). - Connected Clients Table — real-time table with Device Name, IP Address (resolved via ARP), and MAC Address for every connected device.
- Network Properties — live SSID, Password, and Wi-Fi Band display pulled directly from WinRT.
- Shutdown Timer — set an auto-off timer in minutes from the GUI or the system tray (1h / 2h quick presets).
- Auto-Restart — periodic hotspot restart to prevent session hangs (configurable interval, 0 to disable).
- System Tray — runs silently in the background with a dynamic green/gray tray icon and quick-access context menu via
pystray. - Start with Windows — one-click autostart toggle, properly registered in the Windows Registry.
- Thread-Safe Architecture — all background polling uses
threading.Lockandroot.after()to avoid Tkinter cross-thread crashes. - Memory Optimized — explicit garbage collection on window minimize, cached tray icons, QR code regeneration only on SSID/password change.
- Python 3.11+ required.
- Clone this repository:
git clone https://github.com/YOUR_USERNAME/GSPOT.git cd GSPOT - Install dependencies:
pip install -r requirements.txt
- Run the application:
python src/hotspot_manager.py
The application will prompt for Administrator privileges — required for controlling the Windows Mobile Hotspot via WinRT API.
Download the latest HotspotManager_v3.0.exe from the Releases page. No Python installation needed — just run the .exe (it will request admin rights automatically).
Compile into a standalone .exe with the included build script:
.\build.batThis runs PyInstaller with all necessary flags:
--onefile— single self-contained binary--windowed— no console window--uac-admin— embedded UAC manifest for auto admin prompt--add-data— bundlescustomtkinterthemes and assets--hidden-import— includespystray,qrcode,winsdkbackends
Output: dist\HotspotManager_v3.0.exe
⚠️ Windows Defender may flag PyInstaller executables as false positives. See BUILD_README.md for detailed mitigation steps.
pytest31 tests covering API service, background logic, config, tray behavior, and project structure.
- QR Code Generation — scan-to-connect QR code on the Network Info tab using the
WIFI:T:WPAstandard format - macOS-Style Redesign — complete visual overhaul: dark theme, card frames (
corner_radius=12),CTkSwitchtoggle, Helvetica typography, macOS system color palette - IP Address Resolution — connected clients table now shows IP addresses via Windows ARP table parsing
- Thread Safety —
IntVar.set()and shared state protected withroot.after()+threading.Lock(no more "main thread is not in main loop" crashes) - Async Fix — replaced
asyncio.run()withnew_event_loop()to preventRuntimeErrorfrom background threads - WinRT Type Safety — all
HostNameobjects explicitly converted tostr()before f-string formatting (fixesTypeError: unsupported format stringcrash in compiled.exe) - Log Deduplication — repeated errors logged once instead of every 5 seconds
- Exception Handling — bare
except:replaced withexcept Exception:
v2.0
- Tabbed interface (
CTkTabview) separating Controls and Network Info - Network properties display (SSID, Password, Band)
- Connected clients monitor with live counter
v1.2
- Hibernation crash fix
- Start with Windows registry fix
- Silent startup (
--minimizedflag) - Graceful exit from system tray
| Component | Technology |
|---|---|
| GUI Framework | CustomTkinter |
| System Tray | Pystray + Pillow |
| Network API | WinSDK (Windows Runtime) |
| QR Code | qrcode + Pillow |
| Testing | Pytest |
| Build | PyInstaller |
This project uses pystray (LGPLv3). The pystray library can be replaced by the end user via pip install. |
This project is provided as-is for personal use and educational purposes.

