A simple macro pad for windows 11
Find a file
2026-09-18 05:55:35 +00:00
macro_pad.py initial 2026-09-18 05:15:42 +00:00
macros.json initial 2026-09-18 05:15:42 +00:00
README.md add readme 2026-09-18 05:55:35 +00:00

Macro Pad

Ein einfaches Windows-Tool mit grafischer Oberfläche (basierend auf customtkinter), das konfigurierbare Tastenkombinationen ("Makros") als klickbare Buttons anzeigt. Ein Klick auf einen Button sendet die hinterlegte Tastenkombination an das zuletzt aktive Fenster, sodass das Macro Pad wie eine virtuelle Makrotastatur funktioniert.

Funktionen

  • Anzeige von Makros aus einer JSON-Datei (macros.json) als Buttons in einem responsiven Grid
  • Auswahl einer beliebigen Makro-JSON-Datei über einen Dateidialog ("Öffnen...")
  • Neuladen der aktuellen Datei ("Neu laden")
  • Zoom-Funktion (50–250 %) zur Anpassung der Button-Größe
  • Verfolgung des zuletzt aktiven externen Fensters, damit Tastenkombinationen dort ausgeführt werden, auch wenn das Macro Pad selbst den Fokus hat (immer im Vordergrund, -topmost)
  • Tooltips mit dem hinterlegten Shortcut beim Überfahren eines Buttons mit der Maus

Voraussetzungen

  • Windows (verwendet die Windows-API über ctypes/user32)
  • Python 3.9+
  • Abhängigkeiten:
    • customtkinter
    • pyautogui

Installation der Abhängigkeiten:

pip install customtkinter pyautogui pyinstaller

Konfiguration der Makros

Die Makros werden in einer JSON-Datei definiert. Standardmäßig wird macros.json im selben Verzeichnis wie macro_pad.py verwendet, falls vorhanden. Jeder Eintrag besteht aus einem Label und einer Liste von Tasten, die per pyautogui.hotkey(...) gesendet werden:

[
  {
    "label": "Reformat Code",
    "keys": [
      "ctrl",
      "alt",
      "l"
    ]
  },
  {
    "label": "Search Everywhere",
    "keys": [
      "shift",
      "shift"
    ]
  }
]

Hinweis: Der Sonderfall ["shift", "shift"] wird als zweifacher, einzelner Druck der Shift-Taste interpretiert (z. B. für "Search Everywhere" in JetBrains-IDEs).

Über den Button "Öffnen..." kann jederzeit eine andere JSON-Datei ausgewählt werden; über "Neu laden" wird die aktuell geladene Datei erneut eingelesen.

Ausführung aus dem Quellcode

python macro_pad.py

Erstellen einer ausführbaren Datei (.exe) mit PyInstaller

Für die Verteilung als eigenständige Windows-Anwendung kann macro_pad.py mit PyInstaller zu einer .exe-Datei gepackt werden.

Installation von PyInstaller

pip install pyinstaller

Build aus dem Skript

PyInstaller kann direkt mit den passenden Optionen aufgerufen werden.

pyinstaller --noconfirm --onefile --windowed --name macro_pad macro_pad.py

Optionen im Überblick:

  • --onefile: Erzeugt eine einzelne, eigenständige .exe-Datei.
  • --windowed: Unterdrückt die Konsole, da es sich um eine GUI-Anwendung handelt.
  • --name macro_pad: Legt den Namen der erzeugten .exe-Datei fest.

Ergebnis

Nach einem erfolgreichen Build befindet sich die ausführbare Datei unter:

dist/macro_pad.exe

Die Verzeichnisse build/ und dist/ sowie die von PyInstaller generierten Zwischendateien werden bei jedem Build neu erzeugt und müssen nicht manuell gepflegt werden.

Hinweis zur Makro-Datei bei Verwendung der .exe

Die gebaute .exe-Datei sucht standardmäßig nach macros.json im selben Verzeichnis wie die Programmdatei. Liegt dort keine passende Datei vor, kann über den Button "Öffnen..." innerhalb der Anwendung jederzeit eine beliebige JSON-Datei mit Makros ausgewählt werden.