easymacros/README.md

2.8 KiB

easymacros

This program is inspired by xmacro, however it isn't xmacro.

Note: This program is for personal use; I will modify it as I deem necessary, but feel free to open issues for suggestions or bug reports. Contributions are welcome!

:pen_ballpoint: TODOs :notepad_spiral:

  • Playing macros (xmacro like)
    • Delay support
    • KeySym/KeyCode/KeyStr action support
    • MotionNotify and button support
    • String typing support (Not too high priority, but I'll add it some time probably)
    • ExecBlock/ExecNoBlock support (not high priority)
      • ExecBlock
      • ExecNoBlock
  • Recording macros (xmacro like)
    • Delay
    • Keyboard actions
    • Mouse actions
  • Utilities for playing macros
    • Ignoring delays when playing
    • Event delay support
  • Rebrand?
    • new name
    • logo
  • macro language (easymacros daemon?)
    • basic interpreter/compiler to fast intermediate lang
    • stdlib
      • xlib stuff (get window handles/ids)
      • easy xtst/xrecord etc abstractions
      • number/text inputs
      • clipboard
      • basic gui features
      • filesystem stuff
      • shell stuff
      • find image/track image/wait for image...
    • event listeners

Ideas 🧠

I may or may not do these, but they sound fun to implement to me!

  • additional macro features
    • relative cursor movements
    • screenshotting whole/parts ot the screen (using external programs)
  • Macro daemon kind of thing to listen in the background for keyboard shortcuts?
    • the daemon itself
    • config file
    • rofi integration
    • dmenu integration
    • custom macro manager
  • macro language?
    • Sending keys
    • mouse movements/events
    • control flow stuff/math/just normal scripting language stuff
    • reading/writing to clipboard
    • calling/recording other macros
    • running commands
  • GUI Macro editor which is actually user friendly

:desktop: Platform support :compression:

  • Linux x11 (only tested on i3wm)
  • Linux Wayland (makes heavy use of X apis, I will only do this if I myself switch to Wayland. I'm open to suggestions how to do it though!)
  • MacOS (Might work because of XQuartz?)
  • Windows (Yeah, I'm not doing that myself. Unless I have to use Windows for anything.)

📥 Installation 📰

Currently only manually possible via cargo build --release and then moving the result into your $PATH.