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
   In wireless security auditing, the standard way to enable monitor mode is using the  aircrack-ng  suite:

    1.  sudo airmon-ng check kill  (kills network managers,  wpa_supplicant ,  dhcpcd , etc.)
    2.  sudo airmon-ng start wlan0 

     While entering monitor mode is easy, exiting it can be tedious and frustrating:

    • The Annoyance: When  airmon-ng check kill  runs, it completely destroys the system's normal internet connectivity. To get back online, a user has to stop monitor mode and manually restart all networking services in the correct sequence.
    • How EZMonitorModeButton solves this: This program automatically stops the monitor interface and sequentially restarts  NetworkManager, wpa_supplicant, avahi-daemon,and dhcpcd .
    • The Value: It acts as a safety net. Instead of leaving the user with broken internet, a single click restores normal network state cleanly.


          ┌────────────────┐
⋮         │ Start Auditing │
⋮         └────────────────┘
⋮                  │
⋮                  ▼
⋮         ◇───────────────◇
⋮         │ Choose Method │
⋮         ◇───────────────◇
⋮                 │ Command Line                      EZMONITORMODEBUTTON
⋮                 ▼
⋮         ┌────────────────────────────────┐    ┌──────────────────────┐
⋮         │ Type sudo airmon-ng check kill │    │ Click Glow Switch ON │
⋮         └────────────────────────────────┘    └──────────────────────┘
⋮                          │
⋮                          ▼
⋮         ┌─────────────────────────────────┐
⋮         │ Type sudo airmon-ng start wlan0 │
⋮         └─────────────────────────────────┘
⋮                          │
⋮                          ▼
⋮         ┌────────────────────┐
⋮         │ Auditing Completed │
⋮         └────────────────────┘
⋮                    │ Manual Cleanup
⋮                    ▼
⋮         ┌────────────────────────────────────────────────────────────┐    ┌───────────────────────┐
⋮         │ Type stop commands + restart NetworkManager/wpa_supplicant │    │ Click Glow Switch OFF │
⋮         └────────────────────────────────────────────────────────────┘    └───────────────────────┘
⋮                                                                                       │
⋮                                                                                       ▼
⋮         ┌─────────────────────────────────┐
⋮         │ Internet Restored Automatically │
⋮         └─────────────────────────────────┘
⋮
⋮     

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.5.1

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.5.1
File Size Uploaded
ezmonitormode-1.5.1.tar.gz 13.2 kB Details

Built distribution (wheel)

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

Total release size: 28.1 kB

Release files / ezmonitormode-1.5.1.tar.gz

Download URL ezmonitormode-1.5.1.tar.gz
Size 13.2 kB
Tags Source
SHA-256 checksum
How to use checksums
06b91287817826025f79472cfaa36fab527e5e335c867709ff27b5c5028cf1af
BLAKE2b-256 checksum
How to use checksums
ad5f89642f7b498aa15dc9c84e6f99366582c96226ecbd64c524dade383ae5d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL ezmonitormode-1.5.1-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3c11a50bfc1dbff082fa89d813c244ca8c689175fc1ad72b38f99a3cdf6a40be
BLAKE2b-256 checksum
How to use checksums
64fc18ce9e6e7165ad828f5231f68466f2411e5b354ae3ea8fbf3e96556ec33d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

3.0.0

2 release files

2.0.0

2 release files

This release

1.5.1 This release

2 release files

1.5.0

2 release files

1.4.2

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