Skip to main content

EZMonitorModeButton

A simple yet robust Python GUI for the Raspberry Pi to easily enable and disable monitor mode on a wireless interface.

guiez

Version 1.4.2 (New!)

  • Subprocess Timeout Safeguards: Protects GUI thread from freezing if a wireless driver hangs.
  • Smart Interface Injection: Automatically passes target monitor interfaces to Wireshark (-i), Wifite (-i), and Kismet (-c).
  • Robust Dependency Guard: Gracefully warns and disables action if the airmon-ng suite is missing.

Version 1.4.1

  • 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 dhcpcd networking 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 dev parser (with iwconfig fallback) 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.2_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

  1. Clone this repository:
    git clone https://github.com/ldl805/EZMonitorModeButton.git
    cd EZMonitorModeButton
    
  2. Install dependencies:
    sudo apt update
    sudo apt install python3-tk aircrack-ng wireless-tools iw
    
  3. 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 ezmonitormode to 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.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ezmonitormode 1.4.2
File Size Uploaded
ezmonitormode-1.4.2.tar.gz 10.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ezmonitormode 1.4.2
File Interpreter ABI Platform
ezmonitormode-1.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 22.7 kB

Release files / ezmonitormode-1.4.2.tar.gz

Download URL ezmonitormode-1.4.2.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d7e27da59978b19d4df03629988585dcccc1b2735d422b93d0374a51f86d0624
BLAKE2b-256 checksum
How to use checksums
b152d2a0ad74c6bb0f273ca1e527e33970651c9359f5983a3a2849f599117ce6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Release files / ezmonitormode-1.4.2-py3-none-any.whl

Download URL ezmonitormode-1.4.2-py3-none-any.whl
Size 12.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e1a872dae315d0cdeb9866d214ad0d4d755bd672234eddbe862df32f5f45a7aa
BLAKE2b-256 checksum
How to use checksums
4d632b9c1459b2ae3cde33cf4d7fd53f50ac0a7255cafcca78b0185b180fcfd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Release history Release notifications | RSS feed

3.0.0

2 release files

2.0.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

This release

1.4.2 This release

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page