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

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

  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.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.4.1
File Size Uploaded
ezmonitormode-1.4.1.tar.gz 10.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ezmonitormode 1.4.1
File Interpreter ABI Platform
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

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

1.4.2

2 release files

This release

1.4.1 This release

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