A simple GUI to enable/disable monitor mode on wireless interfaces.
Project description
EZMonitorModeButton
A simple yet robust Python GUI for the Raspberry Pi to easily enable and disable monitor mode on a wireless interface.
Version 1.3.1 (New!)
- Custom Glowing Toggle Switch: Features a Canvas-based sliding switch flanked by status labels. Both ON and OFF are visible, with only the active state glowing (neon green for ON, bright red for OFF).
- Smooth Non-Freezing GUI: Ported command executions (
airmon-ng start/stop) to background threads. The interface stays responsive and updates status messages in real-time during transitions. - Precise Interface Tracking: Implemented exact status checking using a custom
iw devparser (withiwconfigfallback) to eliminate false positive states when multiple wireless adapters are active. - Smart Tool Launcher Validation: Detects if Wifite, Wireshark, or Kismet are installed. If a tool is missing, its launch button is gracefully disabled and labeled
(N/A). - Slate Dark Theme: Upgraded to a modern slate/charcoal styling configured via
ttk.Style. - Window Centering: GUI centers itself on launch for better desktop UX.
- Interface Refresh: Clear button to scan and refresh the list of available wireless cards.
Installation (Recommended)
Option 1: Debian Package (Pi/Ubuntu/Debian)
Download the latest .deb file from the Releases page and install it using:
sudo apt update
sudo apt install ./ezmonitormode_1.3.1_all.deb
Once installed, you can launch it from your application menu or by running ezmonitormode in the terminal.
Option 2: Via PyPI
pip install ezmonitormode
Once installed, run with sudo -E ezmonitormode.
Option 3: Running from Source
- Clone this repository:
git clone https://github.com/ldl805/EZMonitorModeButton.git cd EZMonitorModeButton
- Install dependencies:
sudo apt update sudo apt install python3-tk aircrack-ng wireless-tools iw
- Run the application:
sudo -E python3 src/ezmonitormode/monitor_gui.py
Troubleshooting
"no display name and no $DISPLAY environment variable"
This occurs if the GUI cannot find your screen.
- Running via SSH: Ensure you connected with X11 forwarding:
ssh -X user@pi. - Running via sudo: Use
sudo -E ezmonitormodeto preserve your display settings. - Running in Headless mode: This application requires a graphical desktop (Pi Desktop, VNC, etc.).
System Dependencies
Before running ezmonitormode, ensure you have the following system tools installed:
sudo apt update
sudo apt install python3-tk aircrack-ng wireless-tools
Optional tools for the shortcut buttons:
sudo apt install wifite wireshark kismet
License
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ezmonitormode-1.3.1.tar.gz.
File metadata
- Download URL: ezmonitormode-1.3.1.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7221844a61b4b1c9a04a2f8affae8f7076c25fee4da5a4e6284b8f90103e506
|
|
| MD5 |
369a495dae17c0894b78781fb9c2af38
|
|
| BLAKE2b-256 |
fe3e1bf2092de9379e3eb91c08d7b24ce33346c003b8cee5dd44a2f74c00d56e
|
File details
Details for the file ezmonitormode-1.3.1-py3-none-any.whl.
File metadata
- Download URL: ezmonitormode-1.3.1-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18acef85f1f43893de46882d80c929f7a7422dbb57aa10ab72079f2bea4e4019
|
|
| MD5 |
fa3389b387a51367a176bec508ec3efe
|
|
| BLAKE2b-256 |
df9e022e3d66b02551361f448b5be202f10696abfc272892a24a5ceb1da38bd0
|