diff --git a/dist/mp-server-v2.exe b/dist/mp-server-v2.exe index 81bc92d..1854541 100644 Binary files a/dist/mp-server-v2.exe and b/dist/mp-server-v2.exe differ diff --git a/mp-server-v2.py b/mp-server-v2.py index fab2845..3889734 100644 --- a/mp-server-v2.py +++ b/mp-server-v2.py @@ -15,6 +15,7 @@ import logging import socket import qrcode import sys +import time class MacroPadServer: def __init__(self, root): @@ -22,6 +23,9 @@ class MacroPadServer: self.root.title("MacroPad Server") self.root.geometry("800x600") self.configure_styles() + + # Set Version Str + self.version_str = "0.5.3 Beta" # Set up directories if getattr(sys, 'frozen', False): @@ -85,6 +89,12 @@ class MacroPadServer: right_frame = ttk.Frame(main_frame) right_frame.pack(side=tk.RIGHT, fill=tk.BOTH, expand=True, padx=(10, 0)) + #Set version details + version_label = tk.Label(self.root, text=self.version_str, + bg=self.bg_color, fg=self.fg_color, + font=('Helvetica', 8)) # Using smaller font for version text + version_label.pack(side=tk.BOTTOM, anchor=tk.SE, padx=5, pady=(0, 2)) + # Button container button_frame = ttk.Frame(left_frame) button_frame.pack(fill=tk.X, pady=(0, 10)) @@ -886,32 +896,26 @@ setTimeout(() => { errorStatus.style.display = 'none'; }, 2000); if macro["type"] == "text": # Handle key modifiers modifiers = macro.get("modifiers", {}) - keys_to_press = [] # Add modifier keys if enabled if modifiers.get("ctrl", False): - keys_to_press.append('ctrl') + pyautogui.keyDown('ctrl') if modifiers.get("alt", False): - keys_to_press.append('alt') + pyautogui.keyDown('alt') if modifiers.get("shift", False): - keys_to_press.append('shift') - - # If there are modifier keys, use hotkey functionality - if keys_to_press: - # For single characters with modifiers, use hotkey - if len(macro["command"]) == 1: - keys_to_press.append(macro["command"]) - pyautogui.hotkey(*keys_to_press) - else: - # For longer text, press modifiers, type text, then release - for key in keys_to_press: - pyautogui.keyDown(key) - pyautogui.typewrite(macro["command"], interval=0.02) - for key in reversed(keys_to_press): - pyautogui.keyUp(key) + pyautogui.keyDown('shift') + if str(macro["command"]) and len(str(macro["command"])) == 1: + pyautogui.keyDown(macro["command"]) + time.sleep(0.5) else: - # No modifiers, just type the text pyautogui.typewrite(macro["command"], interval=0.02) + # Release modifier keys in reverse order + if modifiers.get("shift", False): + pyautogui.keyUp('shift') + if modifiers.get("alt", False): + pyautogui.keyUp('alt') + if modifiers.get("ctrl", False): + pyautogui.keyUp('ctrl') # Add Enter/Return if requested if modifiers.get("enter", False): @@ -943,6 +947,7 @@ setTimeout(() => { errorStatus.style.display = 'none'; }, 2000); def exit_app(self, icon=None, item=None): # Actually exit the app + self.stop_server() self.server_running = False if hasattr(self, 'tray_icon'): self.tray_icon.stop() diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..c52db98 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +0.5.3 \ No newline at end of file