How mlohajner/wifi-spectrum works
WiFi-spectrum is a native Linux WiFi spectrum visualizer; scan2 adds Bluetooth visualization. The main workflow is to scan nearby radios, parse results, and display them in an embedded WebKitGTK interface, with GTK handling native dialogs and NetworkManager connections. The README documents the broader feature set; sampled excerpts confirm scanning, parsing, UI behavior, and GTK-to-WebKit messaging, but omit much of the runtime wiring. Edges based on the README reflect documented behavior, not a full source trace.
Main entry points: scan.py Embedded WebKit view · scan2.py WiFi + BT scanner
Components 17
Radio acquisition
- WiFi scanner
source/scan.py - WiFi scan
source/scan.py - WiFi parsing
source/scan.py - WiFi + BT scanner
source/scan2.py - Bluetooth results
source/scan2.py
Visualization
- Embedded WebKit view
source/scan.py - Spectrum graph
source/scan.py - Network table
source/scan.py - Bluetooth visualization
source/scan2.py - Theme styling
source/scan.py
Desktop integration
- GTK window and dialogs
source/scan.py - Connection flow
source/scan.py - Radio status controls
source/scan.py - Settings
source/scan2.py
Other components
- User
- NetworkManager
- rfkill and interface tools
Connections 19
- User → WiFi scanner: launches
README.md - User → WiFi + BT scanner: launches
README.md - WiFi scanner → WiFi scan: runs scan
source/scan.py - WiFi scan → WiFi parsing: parses results
README.md - WiFi scanner → Embedded WebKit view: feeds data
README.md - Embedded WebKit view → Spectrum graph: renders
README.md - Embedded WebKit view → Network table: renders
README.md - User → Network table: selects network
README.md - WiFi + BT scanner → Bluetooth results: scans devices
README.md - WiFi + BT scanner → Bluetooth visualization: feeds data
README.md - Embedded WebKit view → Theme styling: uses styles
README.md - User → GTK window and dialogs: uses dialogs
README.md - Embedded WebKit view → GTK window and dialogs: requests connect
source/scan.py - GTK window and dialogs → Connection flow: prompts
README.md - Connection flow → NetworkManager: connects via
README.md - WiFi scanner → Radio status controls: checks status
README.md - Radio status controls → rfkill and interface tools: checks or unblocks
source/scan.py - User → Settings: configures
README.md - Settings → Theme styling: sets preference
README.md