Skip to content

v0.6.3 — keysym case fix + app disambiguation

Choose a tag to compare

@javimosch javimosch released this 12 Aug 16:36
· 2 commits to main since this release

Two correctness fixes, both cases of the tool giving a confident wrong answer instead of refusing.

Ambiguous --app is refused, not guessed (#3)

Two applications can publish the same accessible name — two browser profiles both call themselves Microsoft Edge. --app silently resolved to whichever the desktop listed first.

$ linux-use apps
  {"name":"Microsoft Edge","pid":872010,"toolkit":"Chromium","windows":1,"ref":"Microsoft Edge#pid872010"}
  {"name":"Microsoft Edge","pid":924858,...,"ref":"Microsoft Edge#pid924858"}
  "ambiguous_names":["Microsoft Edge"]

$ linux-use state --app 'Microsoft Edge'               # app_ambiguous, exit 80
$ linux-use state --app 'Microsoft Edge#pid924858'     # 39 elements
$ linux-use state --app 'Microsoft Edge' --pid 924858  # same

apps now reports pid, toolkit and a ready-made selector, flags ambiguous_names and warns on stderr. windows and find honour the same filter. An absent app still reports app_not_found (82), distinct from ambiguous (80).

Verified with two same-named Edge instances: 375 vs 39 elements, and a heading unique to the second instance is found only under its own pid.

Case-sensitive keysyms, and --dry-run (#2)

key lowercased the whole combo before lookup, but X keysym names are case-sensitive — so alt+F4 failed with unknown_key, while aliases like enter masked the problem for the keys people test first. Closing a window, the obvious move for an app exposing no accessible action, was impossible.

Resolution now tries the alias table (case-insensitive) → the token exactly as written → the token capitalised.

combo resolves to
alt+F4 / alt+f4 Alt_L + F4
ctrl+F12, Print, Menu, shift+Insert, Pause as written
ctrl+shift+t, enter, esc, pageup, super+left unchanged

Also added f1f24 in either case plus insert, print, menu, pause, capslock, numlock, scrolllock, altgr aliases, and:

linux-use key alt+F4 --dry-run   # {"keys":["Alt_L","F4"],"sent":false}

so a combo can be validated without closing a window to find out.

Install

curl -L -o linux-use https://github.com/javimosch/linux-use/releases/download/v0.6.3/linux-use-v0.6.3-x86_64-linux
chmod +x linux-use && sudo mv linux-use /usr/local/bin/
sudo apt install libatspi2.0-0 libxtst6 libx11-6 libglib2.0-0 xclip
linux-use doctor && linux-use guide

sha256: e58b6270f310e38cb2814e8330b1b693a09d9559b0c8fc018539e4a4d7c0afd5

Full Changelog: v0.6.2...v0.6.3