Skip to content

Latest commit

 

History

History
87 lines (73 loc) · 4.64 KB

File metadata and controls

87 lines (73 loc) · 4.64 KB

Macro Center a Visual Programming tool for Macros

Macro Center is a cross-platform tauri application designed to simplify the creation and management of macros through a visual programming interface (node-based UI). It allows users to automate repetitive tasks by creating macros using a simple to use interface, making it accessible for users without programming experience.

Features

  • Node-Based Visual Programming: Users can create macros by connecting nodes that represent different actions and logic.

    • This is done using the svelteflow library (xyflow, svelte version, @xyflow/svelte)
    • Will use tailwind where possible for styling, for costumizing xyflow nodes, im not sure you can use tailwind directly, so might need to use plain old css for that.
  • Predefined Nodes: The application comes with a variety of predefined nodes for common actions such as keyboard input, mouse movements, delays, and conditional logic, for example:

    • keybind node: to bind a macro to a specific key combination.
      • Inputs: none
      • Outputs: trigger
      • Parameters: key combination (e.g., Ctrl+Shift+M or F5)
    • type node: types a given string.
      • Inputs: trigger
      • Outputs: trigger
      • Parameters: string to type
    • key node: presses a given key.
      • Inputs: trigger
      • Outputs: trigger
      • Parameters:
        • key to press (e.g., 'A', 'Enter', 'Ctrl')
        • mode: 'press', 'release' and 'click' (press and release)
    • mouse press node: simulates mouse button actions.
      • Inputs: trigger
      • Outputs: trigger
      • Parameters:
        • button: 'left', 'right', 'middle', "mouse4", "mouse5", etc.
        • mode: 'press', 'release', 'click'
    • mouse move node: moves the mouse cursor to specified coordinates.
      • Inputs: trigger
      • Outputs: trigger
      • Parameters:
        • x coordinate
        • y coordinate
        • mode: 'absolute' or 'relative'
    • delay node: introduces a delay in the macro execution.
      • Inputs: trigger
      • Outputs: trigger
      • Parameters: delay time in milliseconds
    • scroll mouse node: scrolls the mouse wheel.
      • Inputs: trigger
      • Outputs: trigger
      • Parameters:
        • amount: positive or negative integer for scroll direction
    • conditional node: executes different branches based on a condition.
      • Inputs: trigger, condition input
      • Outputs: true branch trigger, false branch trigger
      • Parameters: condition expression (e.g., variable comparison)
    • etc.
  • Cross-Platform Support: Built using Tauri, Macro Center runs on Windows, macOS, and Linux.

  • Macro Management: Users can save, load, and organize their macros within the application. (probably save them as json files)

For reference

I had previously worked on a similar project called Auto-Spammer, but never got far with it, it implemented some of nodes UI. I will use it as a reference for this project.

TODO:

  • Fix the Keybind node to work with numpad keys

  • Fix the Keybind node to work with mouse buttons

  • Add proper logic nodes (if, loops, variables, etc.)

  • Add a way to reuse groups of nodes as submacros, this would allow users to create more complex macros by combining simpler ones, and also make it easier to organize and manage large macros.

  • Add a Comment node for users to add notes and explanations to their macros, this would be especially useful for complex macros or for sharing macros with others.

  • Create C header

  • See about integrating boltffi

  • see why bun and deno don't really work

  • see why we need to sleep before typing text (atleast on x11 linux)

  • publish packages to crates.io, pypi, npm and luarocks with proper CI

  • update rust example

  • add a cargo profile for the macrocenter app and another for the lib

  • Improve xtask

  • Make it so you can create nodes by clicking on the canvas or grabbing an edge and dropping it somewhere, not only from the sidebar.

  • Make it so you can select nodes and copy/paste them

  • Add a tool to see the mouse coordinates, to make it easier to create mouse move nodes

  • Add a tool to record user actions and convert them into macros, this would be a separate page/mode

  • Add a way to export macros as standalone scripts that can be run without the Macro Center application, this would be useful for sharing macros with others who don't have the app installed. Either by compiling them to native executables or by creating a small lightweight headless runtime that can execute the macros without the need for the full application.