I want to share with you this current project of mine. You can find it here: https://github.com/phil294/AHK_X11. The GitHub Readme has quite thorough information on it, but I'll quote some parts of it here anyway. You can open up issues over there for bugs, feature requests etc., but I'll also check this very thread and maybe Discord.
- A rudimentary but functional implementation of AutoHotkey v1.0.24. This version is ancient: 2004.
You can check the old manual by installing or extracting the old `.chm` manual from [here].
Many modern AHK features will be missing, especially expressions (`:=` or `% v`) and functions, so you probably can't just port your scripts from Windows. Maybe this will also be added some day, but it does not have high priority for me personally. Mixing these syntaxes is also not a great idea, as we have all learned... Some of the more modern features would certainly be helpful though, such as RegEx (definitely gonna add this one) or ImageSearch. - In other words, at least initially, AHK_X11 supports *only legacy syntax*. Some folks have already tried to stop me from taking that route, but to no avail, I'm afraid :D Please forgive me. I still think it's the right strategy.
- for Unix-like systems with an X window system (X11)
- written from ground up in Crystal. It shares no code with normal AHK or any other program.
- With the eventual goal of 80% feature parity with that old spec, but most likely never full compatibility.
- Everything that can't be easily translated into Linux (surprisingly little) will simply be skipped
- No automatic tests for now
- It is/will be shipped as a single executable native binary with very low resource overhead and fast execution time.
Note on Keysharp: I think the differences to Keysharp should be pretty obvious by now, both in philosophy and technology, in v2 syntax and target operating systems, target audience and ambitions. If @mfeemster continues his amazing dedication, Keysharp will most likely be superior to AHK_X11 in most aspects. I consider this a positive development. Perhaps I can help out on the Linux side of things some day.
Contrary to previous belief I have encountered on these forums, it is not necessary to manually cater all different Linux distributions. AHK_X11 targets the X display server that all those distros use anyway. The window or display manager is irrelevant. The integration is also not particularly cumbersome either. After endlessly reading up on various topics, the event loop, hotkey parsing, registration etc. was only a few lines. Crystal rocks!
For current status, please check the Readme. I plan on postponing GUIs and instead finishing Hotkeys and `Send` and many Windows and Files commands first. I'd also like to take the old docs, convert them into HTML, add colorful notes showing which features are done, added, missing or altered and link it as a single page somewhere so you get instant complete documentation access. However, I also don't want to get into trouble (license?) by publishing and posting outdated documentation that might confuse Windows users some day...
TL;DR: Not usable yet, but will probably start to be useful already quite soon (granted I get libxdo working).