# MP-Server

A versatile MacroPad server application that lets you create, manage, and execute custom macros from both a local interface and remotely via a web interface.

## Features

- **Text Macros**: Insert frequently used text snippets with a single click
- **Application Macros**: Launch applications or scripts directly
- **Key Modifiers**: Add Ctrl, Alt, Shift modifiers and Enter keypress to your text macros
- **Custom Images**: Assign images to macros for easy identification
- **Web Interface**: Access and trigger your macros from other devices on your network
- **System Tray Integration**: Runs silently in your system tray for easy access
- **Persistent Storage**: Macros are automatically saved for future sessions

## Requirements

- Python 3.11+
- Required Python packages:
  - tkinter
  - flask
  - pyautogui
  - pystray
  - Pillow (PIL)
  - flask_cors
  - waitress

## Installation

1. Clone or download this repository
2. Install the required dependencies:
   ```bash
   pip install -r requirements.txt
   ```
3. Run the application:
   ```bash
   python mp-server-v2.py
   ```

## Alternative Installation Method
#### Windows only

1. Create a Folder you wish to run MarcoPad from
2. Download ```mp-serverv2.exe``` from the ```dist``` folder
3. Accept the security notices, and run the application 

> [!IMPORTANT]
> The executable is unsigned and may trigger security warnings.  You may need to click "More info" and "Run anyway" in Windows SmartScreen or add an exception in your antivirus software.

## Usage

### Main Interface

When launched, MP-Server displays your existing macros with options to:

- **Add New Macro**: Create text snippets or application shortcuts
- **Edit Macro**: Modify existing macros
- **Delete Macro**: Remove unwanted macros
- **Minimize to Tray**: Hide the application to your system tray
- **Exit**: Close the application completely

### Creating a Macro

1. Click the "Add Macro" button
2. Fill in the details:
   - **Name**: A descriptive name for your macro
   - **Type**: Choose between Text or Application
   - **Command/Text**: The text to insert or application command to run
   - **Modifiers**: Select any combination of Ctrl, Alt, Shift, and Enter
   - **Image**: Optionally add an image for visual identification
3. Click "Save" to create your macro

### Remote Access

The application runs a web server enabling remote access:

1. Note your computer's local IP address (shown in the application header)
2. From another device on the same network, open a web browser
3. Navigate to `http://<your-ip-address>:40000`
4. Click on any macro to execute it on your main computer

### System Tray

When minimized to the system tray:
- Right-click the tray icon to show options
- Select "Show" to restore the window
- Select "Exit" to close the application

## Example Application Commands

### Windows Examples

#### Steam Applications
```"C:\Program Files (x86)\Steam\steam.exe" steam://rungameid/2767030```

#### Chrome to a website

```"C:\Program Files\Google\Chrome\Application\chrome.exe" http://twitch.tv/shadowdao```