# easymacros This program is inspired by [**xmacro**](https://github.com/Ortega-Dan/xmacroIncludingDelayCapturing/), 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:

- [x] Playing macros (xmacro like) - [x] Delay support - [x] KeySym/KeyCode/KeyStr action support - [x] MotionNotify and button support - [x] String typing support (Not too high priority, but I'll add it some time probably) - [x] ExecBlock/ExecNoBlock support (not high priority) - [x] ExecBlock - [x] ExecNoBlock - [x] Recording macros (xmacro like) - [x] Delay - [x] Keyboard actions - [x] Mouse actions - [x] Utilities for playing macros - [ ] Ignoring delays when playing - [x] Event delay support #

❔ 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:

- [x] 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](https://www.xquartz.org/)?*) - [ ] Windows (*Yeah, I'm not doing that myself. Unless I have to use Windows for anything.*) #

:inbox_tray: Installation :newspaper:

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