EZMonitorModeButton
A simple yet robust Python GUI for the Raspberry Pi to easily enable and disable monitor mode on a wireless interface.
Version 1.4.1 (New!)
- Targeted Interface Disabling: Stop scripts now target specific monitor interfaces rather than alphabetically first.
- Crash Safeguards: Fixed a GUI refresh crash when started with no adapters connected, and added safe Unicode error decoding.
- Legacy OS Compatibility: Restores
dhcpcdnetworking services on legacy Pi OS installations. - UX/Aesthetics: Added interactive mouse cursor indicator and hover outline animations for the custom slider.
- Subprocess Compatibility: Runs terminal emulators as the original desktop user when launched via root wrapper to bypass desktop permission blocks.
Version 1.4.0
- Collapsible Tools Panel: Added a toggle button to collapse the Quick Tools section at the bottom, dynamically resizing the window to make only the main button/switch GUI visible.
- 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.4.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
Release files for ezmonitormode 1.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ezmonitormode-1.4.1.tar.gz | 10.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ezmonitormode-1.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.7 kB
Release files / ezmonitormode-1.4.1.tar.gz
| Download URL | ezmonitormode-1.4.1.tar.gz |
|---|---|
| Size | 10.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1816ccebb33a815f2c0458bfa55088d22a3440f8df313ba6bfa2215d540c7307
|
|
BLAKE2b-256 checksum How to use checksums |
06743e2439ee92f8a94471b85325033bc0bf9ced6ab5e20e85ea0023892f59f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / ezmonitormode-1.4.1-py3-none-any.whl
| Download URL | ezmonitormode-1.4.1-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5aaa4a04fa5cd9c2aa4547f1a448029eabbf0726fb074be780f5fba70570787a
|
|
BLAKE2b-256 checksum How to use checksums |
4675045c13e1c85534c5082abb032058c7923a4d48d706746a4e1116b332b534
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|