Skip to content

Releases: phil294/AHK_X11

0.4.0 - WindowSpy, ControlClick, PixelSearch and much more

14 Dec 00:15
9179db3
Compare
Choose a tag to compare

(Download: further down under "Assets" ahk_x11.zip)

This release adds various Control* commands such as ControlClick or WinGetText, a complete and fully functioning Window Spy and more commands. For these to work correctly in all desired applications, adjusting some accessibility settings is usually necessary. There is a section in the Readme about this now.

As a small demonstration of what is now possible, I made a separate project called Vimium Everywhere. In ahkx11's Readme, there's now also a showcase list, should you have created something of interest for the general public.

Detailed list of relevant relevant changes:

9c0de54 fix Ubuntu 22.04 compatibility (#23, #18)
....... fix wrong shift press with Send (#22) (e.g. Send 123 falsely sent !@#)
273169f (internal) add AT/SPI integration (#3)
f2c43b2 add Window Spy (image) - available after install or via ahk_x11 --windowspy
860fac9 add PixelSearch
a9c0667 add PixelGetColor
9f8e88c add CoordMode
8061194 add ControlGetPos
0a6a4ec add ControlGetText
5ff47be add ControlSetText
6fe84bc add ControlClick
40c0575 add OutputVarControl option of MouseGetPos
e1ea33c add WinGetText
576d40a add [, WinText,, ExcludeText] for all relevant commands
cfca4be add WinGetTitle
7299ab1 add WinGetClass
5f9ac34 add WinGet (partially)
68ad59d add WinSet
e353c0a add Input
091ce53 add ToolTip
55e7a6e add GuiControl
f7ca35c add Gui, Color
2c696a0 add Gui, +/-Option
29a75f4 add Gui, Destroy
df33504 add Gui, Cancel /Hide
7e580dc add Loop, Parse
53e6944 add If var [not] in/contains MatchList
8ff67d0 add built-in variables: A_ScreenWidth, A_ScreenHeight, A_UserName, A_IsAdmin, A_ComputerName
2304673 Hotkeys: fix some case sensitivity errors. In particular, hotkeys like A:: or [:: didn't work properly.
e086c2e Installer: Add UNINSTALL button (#18)
6131098 Performance: fix grave performance bug which slowed everything down by factor x20 - x100,000
601104d fix Esc / Escape key (Hotkey, Input, etc.)
af96657 Readme: add more detailed Performance section
4a8b175 fix blocking mouse hotkeys such as LButton:: (without the ~) so that they correctly block normal clicks
5324a6e Gui: add automatic GuiClose label
79ab301 Gui: fix automatic button labels: remove spaces etc from name
85ebb15 fix comma/space issue surrounding multi args commands such as MsgBox or Input (there was an accidental invalid space inserted)
5cad766 fix MsgBox option parsing for when only text is given. E.g. MsgBox, a, b would falsely disregard a and set b as the title.
a2000fa allow targeting a hidden window with ahk_id
51ef0e2 fix A_NowUTC
29f68e6 fix freeing variable memory when unsetting value, i.e. var = should delete var, not set it to empty string
062bc2c Headless: treat empty DISPLAY as headless too, not just missing var
bf0c5bc Gui: allow escaping in Gui commands via backtick
4a61f1e Gui: make windows default not resizable
9bbaa5b Gui: fix making scripts implicitly persistent by the usage of any Gui command
f6683ac add internal benchmarking commands ahk_x11_track_performance_start / ahk_x11_track_performance_stop
8a41cc6 Gui: fix allowing resizing buttons smaller than the current theme allows
1e29e5d Performance: Gui: Speed up Gui, Add x10 by not waiting for Gtk Response
b7ddb20 Gui: fix widgets disappearing when there are many (#105)
8e42ec5 fix Suspend for dynamic Hotkeys created with Hotkey
9d6ad26 fix unblocking key directly after removing it via Hotkey, key, OFF
769d47b fix deadlocks related to long running commands and hotkey spamming
d506e82 Gui: fix Gui, Show w / h option
bf89b55 fix showing popup to user on line parse error, such as missing % sign
fe14f4d add -h / --help arg
1eba0e5 make Xtst (X11 RecordExtension) optional
387540b fix WinGetPos win title criteria
ffa9200 fix If[Not]InString case insensitivity

These builds should be compatible with all common current Linux distributions (x86_64). However, I'd like to eventually make AHK_X11 builds as stable and eternally future-proof as AutoHotkey on Windows, by somehow statically linking all of its dependencies. This seems to be a difficult challenge without bloating the binary up massively. If you have an idea how this can be achieved (because I don't), I'd welcome your input at #24!

There are three different builds available this time:

  1. ahk_x11 the normal build, use this if you don't know which one to choose
  2. ahk_x11-no-gc the garbage collector is disabled in this build. You can use this one if the normal version crashes too often, which can happen with Guis sometimes, esp. when you re/create many of them.
  3. ahk_x11-debug avoid this unless you're trying to reproduce errors. This one includes a lot of logging and is not optimized.

0.3.0

26 Oct 13:29
746290f
Compare
Choose a tag to compare
  • Completed MouseClick, added MouseGetPos, MouseMove, GetKeyState, KeyWait
  • Bugfix: Normal Hotkey + Send didn't work together (#15)
  • Bugfix: Reset current hotstring buffer on Ctrl+C etc. (#12)
  • Bugfix: Fix preserving case for Send commands, including Hotstrings (#13)
  • Bugfix: Clear modifiers before Send so pressing e.g. Shift does not alter the output (#14)
  • Added ahk_x11 --version

0.2.0

01 Oct 23:16
Compare
Choose a tag to compare
  • fixed Hotstrings: Should now work flawlessly in all windows (#1)
  • added mouse Hotkeys: LButton::, RButton, MButton, WheelDown, WheelUp, WheelLeft, WheelRight, XButton1, XButton2
  • added UP Hotkeys: a up:: and so on, and by default Hotkeys now listen for keyDOWN events (like Win version, was UP before)
  • fixed ending auto-execute-section on first hotkey/string-label (#7)
  • added EnvGet
  • and other minor improvements

Planned next steps (TO DO):

  • AUR
  • Basic Wayland support (libinput or evdev?)
  • Proper MouseClick support
  • More command coverage
  • Explore Control* commands possibilities with libatspi

0.1.0

30 Aug 19:24
Compare
Choose a tag to compare

Added Edit, IfMsgBox, #SingleInstance, Reload, Suspend, Pause, IfGreater, IfGreaterOrEqual, IfLessOrEqual, IfLess, IfNotEqual, If var between ... and ..., StringGetPos, StringLeft, StringRight, StringLen, StringLower, StringUpper, StringMid, StringReplace, RegExReplace, RegExGetPos, WinClose, WinKill, WinGetPos, WinMaximize, WinMinimize, FileReadLine, FileSetAttrib, IfExist/IfNotExist, Loop file pattern, IniRead, IniWrite, IniDelete, FileSetTime, Loop read, URLDownloadToFile, MouseClick, WinMove, WinRestore, IfWinActive/IfWinNotActive, FileRead, FileSelectFile/Folder, IfInString, most time-related variables, A_AHKVersion, A_OSType, full text-based Clipboard support, Hashbang support, and many bugfixes

0.0.5

22 Aug 04:24
Compare
Choose a tag to compare

IfMsgBox, #SingleInstance, ahk discord bot compatibility

0.04

20 Aug 03:35
Compare
Choose a tag to compare

Added a Compiler, Installer, REPL, Menu, Run, and made the binary portable (no more distro-specific builds)

0.0.3

12 Aug 21:35
Compare
Choose a tag to compare

Finalized Hotstrings and Hotkeys, added Send, parts of Gui and added docs.

It's no longer necessary to have xdotool/libxdo installed, this is now statically linked and fixes the version problem

0.0.2

29 Jul 09:35
Compare
Choose a tag to compare
0.0.2 Pre-release
Pre-release

Usable to some degree for automation now, most commands still missing though. Requires libxtool/xdotool version 2016, 2021 does not yet work.

x86_64 builds for Debian/Ubuntu and Arch Linux attached, built on Linux 5.4 / Crystal 1.5.0

0.0.1 (Demo)

21 Jul 06:03
Compare
Choose a tag to compare
0.0.1 (Demo) Pre-release
Pre-release

This version is usable but not very useful, as only a handful of commands are available yet (and WinActivate doesn't work).

x86_64 build attached, built on Linux 5.4 / Crystal 1.4.1