beba425868
macro_manager: - All macro reads/writes guarded by a lock; macros.json written atomically (temp + fsync + os.replace). Commands are copied under the lock and executed outside it so wait/keyboard steps don't block other threads. - last_used disk writes debounced (>=5s) instead of a full rewrite per press. - Validate key/hotkey names against pyautogui.KEYBOARD_KEYS and clamp wait ms; invalid input is skipped/logged, not blindly executed. web_server: - WebSocket receive loop always disconnects (fixes dead-socket leak); broadcast prunes failed sockets. - POST /api/execute offloaded to a thread executor so a long macro no longer blocks the event loop. - Image upload hardened: 5MB cap (413), real-image validation via Pillow, server-generated name under macro_images/, returns a relative path only, cleans up on failure. gui: - Execute macros off the Qt main thread (signal back to status bar); debounce resizeEvent and only rebuild when the column count changes. - Relay password stored in the OS keyring when available (plaintext JSON blanked; graceful fallback if no backend); delete dialogs name the macro; honor the minimize-to-tray setting; surface save failures. - Add media/system keys (volume, play/pause, track nav) to the macro editor. - THEME gains shared danger/accent-hover colors; drop dead imports. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
23 lines
567 B
Python
23 lines
567 B
Python
# Configuration and constants for MacroPad Server
|
|
|
|
VERSION = "1.0.0"
|
|
DEFAULT_PORT = 40000
|
|
SETTINGS_FILE = "settings.json"
|
|
|
|
# UI Theme colors
|
|
THEME = {
|
|
'bg_color': "#2e2e2e",
|
|
'fg_color': "#ffffff",
|
|
'highlight_color': "#3e3e3e",
|
|
'accent_color': "#007acc",
|
|
'button_bg': "#505050",
|
|
'button_fg': "#ffffff",
|
|
'tab_bg': "#404040",
|
|
'tab_selected': "#007acc",
|
|
'accent_hover': "#0096ff",
|
|
'danger_color': "#dc3545",
|
|
'danger_hover': "#c82333"
|
|
}
|
|
|
|
# File extensions for images
|
|
IMAGE_EXTENSIONS = [".jpg", ".jpeg", ".png", ".gif", ".bmp"] |