Why Isn’t There a Linux Version of AutoHotkey for Automating Computer Systems?
When someone likes something, they want it everywhere. Many AutoHotkey lovers question why the free Windows-base scripting language hasn’t invaded other operating systems. AutoHotkey works great for many Windows users and some want the same (or similar) capabilities in Linux. However, there are numerous reasons why an actively supported version of AutoHotkey does not exist outside Windows.
Linux and Windows Computers Serve Different Markets
Quite frankly, if enough people wanted AutoHotkey for Linux (or another operating system), then someone would make it happen. But reality suggests that either most Linux users don’t care about the AutoHotkey form of automation or they use alternative approaches. That attitude springs from the divergent contributions the two operating systems make to the computing world.
When it comes to the desktop/laptop market, Windows owns 90%—and that’s not likely to change in the near future. Windows continues as the top individual choice for daily personal and business computing. Even, the closest competitor, the Apple Mac with its Unix-like OS X operating system, only represents between seven and eight percent of the computers in use today. In the desktop market, Linux garners only about one percent. However, when we look at the world of servers and embedded systems, it’s a different story.
Most people don’t realize that the free Linux operating system supports the bulk of the Internet servers and embedded devices. From The Linux Foundation:
- Of the top one million domains, Linux is the operating system for over 95% of them
- Over 80% of smartphones run Android, which is based on the Linux kernel
- Of the top 500 fastest supercomputers in the world, more than 98% of them run on Linux
- Most of the global markets are running on Linux, including NYSE, NASDAQ, London Exchange, Tokyo Stock Exchange, and more
- The majority of consumer electronic (embedded) devices use Linux for its small footprint
- More than 75% of cloud-enabled enterprises report using Linux as their primary cloud platform
- Linux is the go-to infrastructure supporting the world’s e-commerce leaders, including Amazon, Ebay, Paypal, Walmart, and others
While Windows owns the desktop/laptop world, Linux dominates servers. For the most part, the two types of computers operate worlds apart. Individuals choose Windows, while networks and enterprises run Linux. Although, when administrating the Linux servers sitting in racks at remote locations, Windows computers usually act as the terminals. For AutoHotkey users, as long as they use Windows applications to interface with the Linux servers, AutoHotkey will work—at least on those machines. For these reasons alone, the demand for text expansion and hotkeys does not reach the same level in the Linux universe.
Note: We recently partnered with The Linux Foundation to promote the training they do for people wanting to add Linux skills to their résumé. See our overview blog, “Build Your Career by Learning Linux” at our new ComputorEdge Software Showcase.
Automating Linux Computers
Other reasons for the low demand for Linux automation tools include the availability of built-in tools. Many users employ a Linux shell (e.g. bash) script to automate functions. Also, a quick Google search for “Linux automation tools” yields plenty of other options. While those built-in tools and free apps may not have the simplicity of many AutoHotkey scripts, for most Linux users, it’s all they need.
If someone wants Linux programs which purport to be AutoHotkey-like, then possibly AutoKey or IronAHK offer an alternative. With an emphasis on hotkeys and hotstrings, “AutoKey features a subset of the capabilities of the popular Windows-based AutoHotkey, but is not intended as a full replacement.”
As for IronAHK, a “cross platform .NET rewrite of the popular AutoHotkey scripting language for desktop automation,” it appears that it’s been over five years since anyone has worked on it. I don’t know how well it runs or how many people have ever used IronAHK. I welcome thoughts from anyone with experience with either of these packages.
AutoHotkey Built for Windows
Maybe the most compelling reason for AutoHotkey as a Windows-only package stems from the fact that it takes advantage of unique Windows design features. From Lexikos, the current overseer of AutoHotkey, writing a Linux version of AutoHotkey “would be more work than the average program, due to how much it depends on the Windows API, and how modular the current code base isn’t. I have some plans relating to that, but nothing specific to Linux.” Between the lack of motivation in the Linux world and the fact that AutoHotkey already covers 90% of the desktop/laptop market (Windows), we won’t be seeing an up-to-date Linux version of AutoHotkey anytime soon.
4 thoughts on “AutoHotkey and Linux”
That’s too bad. The ONLY thing keeping me in Windows is Autohotkey – as a developer, I depend upon hotkeys/macros/such like in my daily work. I don’t want to automate Linux – and suggesting that use misses the point entirely – I want to automate ME as a user. Can a BASH script insert a large block of text into my editor?
There are a great many automaton tools for Linux that will do what AHK does on the user side. I manage windows networks but I do that from a Linux desktop. To do what you want, however, you may just use AHK or Autoit through Wine. AHK and Autoit behave much the same way on Linux. Here is a track with Wine and Linux. To give Wine access to a Linux app you can create a bash script to load Acrobat but save it as “acrobat.exe” for example. Wine calls the fake acrobat.exe and the bash script calls the Linux binary and Wine or your windows app is none the wiser.
For searching window titles, there is a Linux version of that again, I would control using a bash script renamed as an EXE.
>Can a BASH script insert a large block of text into my editor?
You can automate your editor (Emacs/vim). The positive is that your keybindings will work cross-platform as long as your editor and your configs are there. The negative is that your keybindings will only work inside the editor.
Thank you for thhis