Compare commits
6
Commits
5727a9ee68
...
v0.8.5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80f4c30fb9 | ||
|
|
c80474f520 | ||
|
|
0a66c1d663 | ||
|
|
2f8fa238fc | ||
|
|
d2a9be6274 | ||
|
|
a477be23cc |
@@ -0,0 +1,140 @@
|
||||
name: Build and Release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
create-release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Get version
|
||||
id: get_version
|
||||
run: |
|
||||
VERSION=$(cat version.txt)
|
||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
tag_name: v${{ env.VERSION }}
|
||||
name: Release v${{ env.VERSION }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
|
||||
build-windows:
|
||||
needs: [create-release]
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pyinstaller
|
||||
pip install -r requirements.txt
|
||||
|
||||
- name: Build executable
|
||||
run: |
|
||||
pyinstaller macropad.spec
|
||||
|
||||
- name: Upload Windows artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: macropad-windows
|
||||
path: dist/macropad.exe
|
||||
|
||||
build-linux:
|
||||
needs: [create-release]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pyinstaller
|
||||
pip install -r requirements.txt
|
||||
|
||||
- name: Build executable
|
||||
run: |
|
||||
pyinstaller macropad_linux.spec
|
||||
|
||||
- name: Upload Linux artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: macropad-linux
|
||||
path: dist/macropad
|
||||
|
||||
# MacOS build is temporarily disabled
|
||||
# Uncomment this section when macOS build environment becomes available
|
||||
#
|
||||
# build-macos:
|
||||
# needs: [create-release]
|
||||
# runs-on: macos-latest
|
||||
# steps:
|
||||
# - name: Checkout code
|
||||
# uses: actions/checkout@v3
|
||||
#
|
||||
# - name: Set up Python
|
||||
# uses: actions/setup-python@v4
|
||||
# with:
|
||||
# python-version: '3.11'
|
||||
#
|
||||
# - name: Install dependencies
|
||||
# run: |
|
||||
# python -m pip install --upgrade pip
|
||||
# pip install pyinstaller
|
||||
# pip install -r requirements.txt
|
||||
#
|
||||
# - name: Build executable
|
||||
# run: |
|
||||
# pyinstaller macropad_macos.spec
|
||||
#
|
||||
# - name: Upload macOS artifact
|
||||
# uses: actions/upload-artifact@v3
|
||||
# with:
|
||||
# name: macropad-macos
|
||||
# path: dist/macropad.app
|
||||
|
||||
attach-to-release:
|
||||
needs: [create-release, build-windows, build-linux]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Get version
|
||||
id: get_version
|
||||
run: |
|
||||
VERSION=$(cat version.txt)
|
||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Download all artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
|
||||
- name: Attach executables to release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
tag_name: v${{ env.VERSION }}
|
||||
files: |
|
||||
macropad-windows/macropad.exe
|
||||
macropad-linux/macropad
|
||||
# macropad-macos/macropad.app/**/*
|
||||
@@ -8,30 +8,157 @@ A versatile MacroPad server application that lets you create, manage, and execut
|
||||
- **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
|
||||
- **Tabbed Organization**: Organize macros into categories with custom tabs
|
||||
- **Sorting Options**: Sort macros by name, type, or recent usage
|
||||
- **Category Management**: Organize macros into custom tabs for better organization
|
||||
- **Web Interface**: Access and trigger your macros from other devices on your network
|
||||
- **System Tray Integration**: Minimize to tray when minimized, exit when closed
|
||||
- **QR Code Generation**: Quickly connect mobile devices to the web interface
|
||||
- **System Tray Integration**: Minimize to tray, restore from tray menu
|
||||
- **Dark Theme UI**: Modern dark interface with improved usability
|
||||
- **Sorting Options**: Sort macros by name, type, or recent usage
|
||||
- **Persistent Storage**: Macros are automatically saved for future sessions
|
||||
- **Dark Theme**: Modern dark interface for comfortable use
|
||||
- **Modular Architecture**: Clean separation of concerns with dedicated modules
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.11+
|
||||
- Required Python packages:
|
||||
- Required Python packages (install via requirements.txt):
|
||||
- tkinter
|
||||
- flask
|
||||
- pyautogui
|
||||
- pystray
|
||||
- Pillow (PIL)
|
||||
- flask_cors
|
||||
- waitress
|
||||
- netifaces
|
||||
- qrcode
|
||||
|
||||
## Installation
|
||||
|
||||
### Method 1: From Source
|
||||
|
||||
1. Clone or download this repository
|
||||
2. Install the required dependencies:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### Method 2: Pre-built Executables
|
||||
|
||||
1. Go to the [Releases](https://repo.anhonesthost.net/MacroPad/MP-Server/releases) page
|
||||
2. Download the appropriate version for your operating system:
|
||||
- Windows: `macropad.exe`
|
||||
- Linux: `macropad`
|
||||
- macOS: `macropad.app`
|
||||
3. Run the downloaded file
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The executables are unsigned and may trigger security warnings. You may need to click "More info" and "Run anyway" in Windows SmartScreen, adjust permissions on Linux (`chmod +x macropad`), or override Gatekeeper on macOS.
|
||||
|
||||
## Usage
|
||||
|
||||
### Main Interface
|
||||
|
||||
When launched, MacroPad 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
|
||||
- **Sort Options**: Sort the Macros by type, name, and recent usage
|
||||
- **Manage Tabs**: Assign categories to macros for better organization
|
||||
- **Start Web Server**: Starts the web server to serve the MacroPad web interface.
|
||||
|
||||
### Creating a Macro
|
||||
|
||||
1. Click the "Add Macro" button
|
||||
2. Fill in the details:
|
||||
- **Name**: A descriptive name for your macro
|
||||
- **Category**: Assign a category to associate with a tab
|
||||
- **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
|
||||
```
|
||||
|
||||
#### Run Notepad
|
||||
```
|
||||
notepad.exe
|
||||
```
|
||||
|
||||
#### Open File Explorer to a specific location
|
||||
```
|
||||
explorer.exe "C:\Users\YourUsername\Documents"
|
||||
```
|
||||
|
||||
### Linux Examples
|
||||
|
||||
#### Opening Firefox
|
||||
```
|
||||
firefox https://example.com
|
||||
```
|
||||
|
||||
#### Opening Steam
|
||||
```
|
||||
steam steam://rungameid/2767030
|
||||
```
|
||||
|
||||
#### Launch Terminal
|
||||
```
|
||||
gnome-terminal
|
||||
```
|
||||
|
||||
#### Open File Manager
|
||||
```
|
||||
nautilus ~/Documents
|
||||
```
|
||||
|
||||
### macOS Examples
|
||||
|
||||
#### Opening Safari
|
||||
```
|
||||
open -a Safari https://example.com
|
||||
```
|
||||
|
||||
#### Opening Terminal
|
||||
```
|
||||
open -a Terminal
|
||||
```
|
||||
|
||||
#### Open Finder to a specific location
|
||||
```
|
||||
open ~/Documents
|
||||
```
|
||||
|
||||
#### Launch Applications
|
||||
```
|
||||
open -a "Visual Studio Code"
|
||||
```
|
||||
|
||||
#### Special Thanks to CatArgent_ on Twitch for proof reading my stuff and providing valuable feedback.
|
||||
@@ -1,6 +1,6 @@
|
||||
# Configuration and constants for MacroPad Server
|
||||
|
||||
VERSION = "0.8.0 Beta"
|
||||
VERSION = "0.8.5 Beta"
|
||||
DEFAULT_PORT = 40000
|
||||
|
||||
# UI Theme colors
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
|
||||
|
||||
a = Analysis(
|
||||
['main.py'],
|
||||
pathex=[],
|
||||
binaries=[],
|
||||
datas=[],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
noarchive=False,
|
||||
optimize=0,
|
||||
)
|
||||
pyz = PYZ(a.pure)
|
||||
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
[],
|
||||
name='macropad',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
)
|
||||
@@ -0,0 +1,45 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
|
||||
|
||||
a = Analysis(
|
||||
['main.py'],
|
||||
pathex=[],
|
||||
binaries=[],
|
||||
datas=[],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
noarchive=False,
|
||||
optimize=0,
|
||||
)
|
||||
pyz = PYZ(a.pure)
|
||||
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
[],
|
||||
name='macropad',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=True,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
)
|
||||
|
||||
app = BUNDLE(
|
||||
exe,
|
||||
name='macropad.app',
|
||||
icon=None,
|
||||
bundle_identifier=None,
|
||||
)
|
||||
+1
-1
@@ -1 +1 @@
|
||||
0.8.0
|
||||
0.8.5
|
||||
Reference in New Issue
Block a user