Changelog
1.57.0 (2026-10-04)
Section titled “1.57.0 (2026-10-04)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”- accessibility: skip tccutil reset when access is already granted (#1721) (547ece3)
- darwin,overlay: place grid label characters where the font puts them (#1727) (519a693)
- darwin: ensure autorelease on posted mouse and key event (#1730) (a845c1a)
- darwin: restore overlays on every Space after a fullscreen video (#1729) (99df1e0)
- modes: sort per-mode hotkey lookup with consistent modifier orders (#1734) (fac8776)
Performance Improvements
Section titled “Performance Improvements”- darwin,overlay: improve overlay memory and faster activation (#1726) (cca76da)
- windows,overlay: release hidden overlay surfaces (#1728) (0388561)
Improvements
Section titled “Improvements”- log: make daemon logs quieter and consistent (#1732) (2483fc1)
- log: readable one-line console logs (#1731) (8dac12e)
1.56.0 (2026-09-28)
Section titled “1.56.0 (2026-09-28)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”- linux: keep Wayland bindings on a Latin layout while another language is active (#1709) (08c53d9)
- linux: keep X11 bindings on a Latin layout while another language is active (#1711) (7ddd0cc)
- linux: take the keyboard on X11 when a hotkey starts a mode (#1710) (25cd4c0)
- windows: keep punctuation hotkeys working while a non-Latin layout is active (#1712) (dda2b2a)
- windows: post drag motion as relative deltas so WinUI text selects (#1706) (5556bcf)
- windows: run exec commands without a console window (#1708) (324c051)
1.55.0 (2026-09-21)
Section titled “1.55.0 (2026-09-21)”Features
Section titled “Features”- cli: add ability to cycle
--strategyand--capture-scope(#1690) (8181c1d) - modes: add bisect mode (#1678) (e67045c)
- modes: repeat a bisect cut with —count in one press (#1682) (5dbfcee)
- modes: support
--capture-screenfor grid and recursive grid (#1686) (6576c70) - overlay: scale label fonts down to fit their cells and badges (#1692) (1f70879)
Bug Fixes
Section titled “Bug Fixes”- config: use arrow key for mouse move in bisect for consistency (#1681) (7484b67)
- darwin: repair overlays pinned to one space after a fullscreen exit (#1687) (c32e3dc)
- lifecycle: make
neru stoppause every mode, action and hotkey (#1689) (570042a) - linux: build on distros whose pipewire emits -fno-strict-overflow (#1697) (22c3edc)
- modes: keep every monitor reachable when displays share a name (#1676) (f7ccc96)
- scroll: release held modifiers around a Wayland scroll (#1683) (437f35e)
- windows: keep hints inside the focused window frame (#1688) (1187d94)
1.54.0 (2026-09-13)
Section titled “1.54.0 (2026-09-13)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”- config: reject NaN and infinite floats in every option (#1652) (94a6a13)
- grid: plan cell sizes in apparent units on scaled Windows and X11 displays (#1658) (496313c)
- linux: make a bare modifier tap reach the compositor while a mode is open (#1666) (69f3dad)
- linux: make a hotkey click on Wayland land where the cursor is, unmodified (#1656) (2cb6a2a)
- linux: name mode chords with the activation modifier still held (#1653) (e9a57cb)
- overlay: draw only hint labels and badges bold on Windows and Linux (#1657) (c976d44)
- overlay: identify the overlay window as
neru-overlayon every platform (#1661) (995800b) - windows: keep idle overlays responsive (#1648) (33f4997)
- windows: post drag motion so a held click selects and drags across a warp (#1664) (fb832ed)
- windows: scale overlay fonts and geometry to the monitor’s DPI (#1655) (6132dd8)
- windows: use Direct2D for the overlay instead of silently falling back to GDI (#1660) (2695e17)
1.53.0 (2026-09-08)
Section titled “1.53.0 (2026-09-08)”Features
Section titled “Features”- hotkeys: glide the cursor smoothly while a relative-move key is held (#1626) (89b6f1c)
- hotkeys: repeat a held global hotkey on Linux and Windows (#1621) (19b40a3)
- install: install, update and remove Neru with one curl or irm command (#1630) (30fc7f5)
- linux: make Wayland mode activation instant with a lifetime keyboard proxy (#1600) (52fa240)
- linux: support cosmic desktop (#1636) (f65d3a4)
- linux: support gnome wayland (#1638) (7e3290b)
- modes: add support for user declared custom mode (#1629) (3a3ee0e)
Bug Fixes
Section titled “Bug Fixes”- cli: open the docs on Windows, where the tray already knows how (#1620) (16a3c90)
- hints: ask for screen-capture consent before the contour strategy runs (#1596) (71d1b34)
- hotkeys: bind Delete to the backspace key on Linux, as on macOS and Windows (#1624) (2cbe3ce)
- install: keep the PowerShell window open and respect the execution policy (#1631) (ed79130)
- install: notice Nix launch agents and clean up the old installer’s systemd unit (#1632) (212a7d1)
- linux: capture Bluetooth keyboards that expose a volume axis (#1633) (90f1447)
- linux: keep the kde focused window current after the tray closes the bus (#1642) (e092e6d)
- linux: keep the Wayland keyboard alive when a remapper grabs Neru’s proxy or starts after it (#1604) (1e8e7da)
- linux: keep Wayland hotkeys working with a key remapper across its restarts (#1602) (cffb996)
- linux: name keys by the character they type so Shift+Tab and PageUp bindings fire (#1599) (1516fb7)
- linux: pick the x11-focused window for hints instead of a chromium frame (#1645) (3029791)
- linux: place KDE screen-capture streams that carry no position (#1635) (66f2f45)
- linux: recognize labwc and the wlroots desktop tag (#1637) (61844b7)
- linux: release forwarded keys on the proxy keyboard when it fails open (#1619) (00715b3)
- linux: round a scroll to the nearest notch instead of truncating it (#1618) (ad4dc5c)
- linux: stop a mod hotkey chord opening the desktop launcher on Wayland (#1634) (cdc0a1e)
- linux: stop a modifier sticking after a Wayland mode launched from a compositor binding (#1603) (7831a5b)
- linux: track windows already open when neru starts on wlroots (#1643) (88463d4)
- linux: warn once when passthrough_unbounded_keys is set on the X11 backend (#1625) (4e6659f)
- modes: click where a held-key glide left the cursor, not on the grid selection (#1627) (3655957)
- scroll: apply a sticky modifier to scroll actions (#1615) (2eb92ff)
- windows: carry the action’s modifiers on injected clicks and drags (#1614) (c331fa2)
- windows: dispatch keys off the low-level hook thread, as the other taps do (#1617) (f151a66)
- windows: keep a stopped keyboard hook’s WM_QUIT off other message pumps (#1598) (73730a9)
- windows: stop the grid cells reappearing behind an open subgrid (#1622) (4c8268c)
1.52.0 (2026-09-04)
Section titled “1.52.0 (2026-09-04)”Features
Section titled “Features”- grid: allow bounded coarse selection labels (#1537) (ed456c4)
- hints: add wl-kbptr contour-based hint strategy on Linux (#1543) (c3aaea9)
- hints: bring the contour strategy to macOS with a capture scope (#1550) (3509ed3)
- windows: capture the screen with BitBlt so the contour strategy works (#1575) (52bcf64)
- windows: draw the virtual-pointer indicator in grid mode (#1581) (3a1f787)
- windows: grid and recursive-grid transition animation (#1583) (97587e4)
- windows: horizontal scroll injection (#1578) (bed6ccf)
- windows: key feed via SendInput (#1594) (ceada7a)
- windows: modifier passthrough and PostModifierEvent (#1579) (8ce1292)
- windows: monitor_select mode (#1580) (2bd90d7)
- windows: native notifications via tray balloon tips (#1586) (623c0cd)
- windows: neru services via Task Scheduler (#1587) (d396055)
- windows: publish display changes as screen-parameter events (#1573) (77a203b)
- windows: publish foreground-window changes through the app watcher (#1572) (fd20eb4)
- windows: resolve font families against installed fonts (#1588) (fc89ada)
- windows: smooth cursor animation, including relative moves (#1584) (39309dc)
- windows: smooth scroll animation (#1585) (110d22b)
- windows: verify the named-pipe server owner before connecting (#1589) (9a3987b)
- windows: vision strategy via Windows.Media.Ocr (#1576) (47bdcf8)
- windows: walk the full UIA tree with a cached FindAll (#1577) (320448d)
Bug Fixes
Section titled “Bug Fixes”- app: guard observer hooks against a config reload racing startup (#1590) (7ba7e26)
- cli: present the Linux and Windows startup notice as beta status (#1595) (6518697)
- linux: make modified scroll work on hyprland (#1474) (5792e25)
- linux: report when scrolling falls back from uinput on wayland (#1570) (2199826)
- linux: stop wayland scroll sending a second, reversed notch per press (#1571) (8df1c41)
- windows: keep sticky modifiers out of global hotkey matching (#1591) (945bf4b)
- windows: prevent overlay flashes when reopening (#1545) (2611b0f)
Performance Improvements
Section titled “Performance Improvements”1.51.0 (2026-08-14)
Section titled “1.51.0 (2026-08-14)”Features
Section titled “Features”- cli: refuse mode command arguments that were accepted and ignored (#1200) (17f304e)
- config: catch a mistyped mode flag in a binding when the config loads (#1201) (9bce87c)
- config: declare per-platform support for every option, flag and action (#1470) (c943b1b)
- config: let hotkey bindings use the Insert key (#1390) (6d144e2)
- hints: make —debug a read-only probe command of its own (#1197) (5db952f)
- linux: animate smooth scroll on every backend (#1473) (eb6d00a)
- linux: capture the screen on KDE through the desktop portal (#1501) (b9b3265)
- linux: capture the screen on X11 and wlroots compositors (#1477) (9ed69c4)
- linux: draw the hint search input badge on every overlay backend (#1476) (b85744d)
- linux: draw the virtual-pointer indicator in grid mode (#1488) (09292c8)
- linux: manage the daemon as a systemd user unit (#1472) (ad4be0b)
- linux: recognise on-screen text for the vision hint strategy (#1480) (54782e3)
- linux: show a paused tray icon and announce a no-CGO build (#1494) (f19319d)
- linux: show notifications and alerts through freedesktop D-Bus (#1471) (134ad2d)
- modes: refuse mode flags that were accepted and then ignored (#1198) (1a3d9c0)
- nix: add services.neru.settings TOML configuration support (#1332) (4bc637e)
- scroll: honor —modifier on scroll actions (#1449) (5f01bb2)
- smooth_cursor: animate relative cursor moves on Linux (#1183) (cb00d07)
- smooth_cursor: animate relative cursor moves with a fixed per-move duration (#1179) (471235a)
- windows: draw the recursive-grid sub-key preview the way Linux and macOS do (#1369) (8120f05)
Bug Fixes
Section titled “Bug Fixes”- accessibility: stop priming from opening status-bar menus (#1307) (c8cee2f)
- app: notice the first application switch after the daemon starts (#1355) (4506c3c)
- app: release the overlay after the event tap on shutdown (#1516) (55019b8)
- cli: open docs on Linux (#1467) (83cfeb6)
- cli: point —role examples in help and docs at role spellings that resolve (#1381) (04f214e)
- close the log file even when shutdown cannot flush the logger (#1397) (4bed76b)
- config: keep the grid labelled from the characters it is built with (#1264) (3950c8a)
- config: name the application whose clickable role is rejected (#1387) (1cdea36)
- config: reload the grid without racing a mode activation (#1284) (bab09a2)
- config: report a grid label set that leaves cells unreachable (#1280) (339ae1f)
- config: report an inert held-repeat acceleration setting in config validate (#1260) (530981e)
- config: report every faulty grid label in one validate run (#1285) (dfdb0c8)
- config: update derived values when config set changes their source (#1274) (76e444d)
- config: warn when a clickable role draws nothing on this platform (#1383) (33646b1)
- darwin: build on Apple clang 15 (#1306) (5dcf384)
- darwin: repair overlays the WindowServer silently pins to one Space (#1181) (3129f3a)
- darwin: stop an unmodified scroll inheriting held modifiers (#1450) (1458502)
- darwin: stop macOS actions firing at a point the cursor has left (#1420) (40f3643)
- eventtap: apply per-app hotkey overrides after switching apps mid-mode (#1273) (17a34a9)
- eventtap: make numpad Enter match Return bindings on macOS and stop numpad Clear firing delete (#1377) (aba948d)
- eventtap: make PageUp, PageDown, Home and End work on X11 and Windows (#1382) (cb29a03)
- eventtap: make the Insert key work on X11 and on Windows (#1403) (0e3b536)
- eventtap: make the keypad navigation keys work on X11 with NumLock off (#1395) (e028db3)
- eventtap: make the keypad work on Linux when the keyboard layout cannot be read (#1400) (d92ddc1)
- eventtap: stop the daemon hanging on quit during an app switch (#1514) (9a835e1)
- grid: draw the subgrid with the keys it accepts (#1275) (16564ea)
- grid: drop o from the alphabet a misconfigured grid falls back to (#1282) (ccfc21c)
- grid: stop a repeated character drawing cells nothing can select (#1283) (247c5c1)
- hints: make search_field and switch produce hints on macOS (#1378) (43b664a)
- hints: restore —debug printing elements instead of drawing hints (#1196) (c9bae53)
- hints: stop a hung app blocking the keyboard when a display changes (#1248) (e6ff491)
- hotkeys: keep global hotkeys working while a mode is active (#1520) (b910e19)
- ipc: scope the IPC endpoint to the user running the daemon (#1524) (8075782)
- linux: fall back to the generic font when the configured family is not installed (#1340) (7fcdc3e)
- linux: follow the physical mouse when selecting the active monitor on Hyprland (#1447) (7b0fc43)
- linux: honour the corner radius on hint boundaries and recursive-grid labels (#1357) (c067d44)
- linux: keep the KDE remote desktop grant across daemon restarts (#1485) (f3a0d37)
- linux: let X11 global hotkeys use Backspace (#1401) (3581735)
- linux: let X11 global hotkeys use PageUp, PageDown, Home and End (#1394) (71712a3)
- linux: report a hint placement the overlay cannot draw (#1331) (b1afe4b)
- linux: report focused-window bounds on KWin instead of the active screen (#1489) (600d5d5)
- linux: report the display server neru is actually driving (#1435) (097899b)
- linux: report the notification backend KDE actually has (#1505) (8a7bf05)
- linux: report when a no-cgo build cannot run Wayland global hotkeys (#1432) (f1b6640)
- linux: report where the focused window is now on KDE, not where it was (#1521) (9d98e5f)
- linux: show the subgrid instead of a stale frame when a cell is picked (#1507) (65bec87)
- linux: stop a modifier Neru injects on X11 latching as a sticky modifier (#1504) (a174f1e)
- linux: stop an X11 click carrying modifiers the user is physically holding (#1503) (de52958)
- linux: stop an X11 scroll carrying modifiers the user is physically holding (#1481) (b6c2942)
- linux: stop hint offsets from installing a KWin script on X11 (#1437) (922986b)
- linux: stop reporting a hint search input the overlay never draws (#1354) (10efe0f)
- linux: stop reporting a window with no pid as a failed X11 query (#1513) (c34e3cd)
- linux: stop the grid cells reappearing behind an open subgrid (#1509) (c225a0d)
- linux: stop X11 hotkeys and the KDE geometry helper from sharing what they should not (#1527) (c20a10b)
- linux: tell a failed compositor query apart from an unfocused desktop (#1512) (2f2f435)
- linux: tell an unfocused X11 desktop apart from a failed active-window query (#1499) (6c6f76d)
- logging: keep the daemon log per-user and out of its own content (#1523) (a919ca7)
- make a held scroll key travel as far as the same number of presses (#1498) (1242da8)
- modes: keep a wedged app from stalling a keystroke inside a mode (#1251) (e70dc86)
- modes: keep the keyboard captured across a mode-to-mode switch (#1519) (d07174f)
- modes: stop the monitor-move lock test failing on a busy machine (#1247) (b11d008)
- nix: stop the Linux source build failing on a rejected pipewire cflag (#1517) (0b67937)
- overlay: honour generic font aliases in the monitor picker and virtual pointer (#1336) (4f7d684)
- overlay: honour the virtual pointer’s char and font size defaults on macOS (#1358) (297f4e4)
- overlay: keep odd-sized badges at their full size (#1330) (bcc63f7)
- overlay: report a hint label placement the macOS overlay cannot draw (#1360) (d7b5844)
- overlay: report a hint search input anchor the overlay cannot place (#1356) (e1d5558)
- overlay: resolve each font family name from its own spelling (#1308) (c053f52)
- overlay: resolve generic font names the same way on every platform (#1290) (8accea2)
- overlay: stop Linux crashing when the overlay is torn down mid-animation (#1419) (d639a2b)
- scroll: anchor scrolls where the cursor is headed during animated moves (#1182) (c56be6b)
- stop warning about a logger flush that never could succeed (#1388) (303a2e8)
- windows: honour hints.ui.placement instead of pinning every label to the element corner (#1367) (4fd6d76)
- windows: keep the daemon alive across thousands of mode activations (#1526) (9733a3e)
Performance Improvements
Section titled “Performance Improvements”- linux: paint the grid subgrid and its pointer in one repaint (#1510) (7696232)
- windows: stop re-resolving the font family on every drawn overlay label (#1361) (c68f80b)
1.50.0 (2026-08-04)
Section titled “1.50.0 (2026-08-04)”Features
Section titled “Features”- action: add
--bail-on-errorto stop a sequence at a failure (#1140) (02c01da) - action: add
--slotfor named cursor marks (#1145) (ce5d664) - action: add
move_cellfor same-layer grid navigation (#1138) (5abc492) - action: add
runfor ordered action sequences (#1139) (224b1ed) - action: hold, release, and toggle any mouse button (#1119) (f92b475)
- cli: add
--jsonoutput toneru status(#1143) (887101b) - cli: add
--stateto the toggles and amacrocommand (#1144) (3931d0f) - config: add
[macros]for named, reusable action sequences (#1141) (97597b4) - config: cross-platform role vocabulary for clickable_roles (#1124) (204cacc)
- held_repeat: accelerate step distance while a key is held (#1120) (ef9e12c)
- linux,wayland: resolve focused application (#1105) (ff0c6fe)
- linux,windows: support function keys F13 through F24 (#1118) (7303270)
- linux: event-driven focused-app changes for per-app config (#1115) (8c9500c)
- linux: feed keys through uinput when /dev/uinput is writable (#1130) (04c885b)
- linux: hint arrows for top/bottom placement (#1111) (6a4112b)
- linux: modifier passthrough on Wayland evdev (#1109) (31c84f8)
- linux: mouse action indicator on X11 and Wayland (#1110) (c907c7a)
- linux: multi-monitor parity for X11 and wlroots/KWin (#1125) (a066493)
- linux: smooth cursor animation for X11 and Wayland (#1108) (13dc1ba)
- linux: Wayland hints support, app watcher, and overlay fixes (#1107) (2988aa4)
- modes: add
--on-exitflag to modes (#1131) (f8ba0cf)
Bug Fixes
Section titled “Bug Fixes”- action: make
feed --modea discrete press-and-release (#1128) (421be62) - config: accept comma-separated action chains in hotkey bindings (#1132) (593543b)
- config: report an invalid reload instead of blocking on the alert (#1142) (77282a5)
- darwin: enable clang-tidy analysis and fix the findings (#1155) (e18057f)
- darwin: invalidate CGEventTap Mach port before releasing it (#1150) (867e717)
- darwin: keep cursor accurate and visible under Accessibility Zoom (#1117) (b5e5a8b)
- darwin: release AX elements leaked during accessibility priming (#1152) (e1b9e9b)
- darwin: skip WindowServer work for healthy overlays on Space changes (#1151) (da0373d)
- linux: bound AT-SPI calls and surface real hints failures (#1121) (09680e8)
- linux: honor XDG base directory environment variables (#1171) (d22e474)
- linux: render overlays properly on the selected monitor (#1129) (fd2def9)
- linux: stop hints clearing on Wayland refresh (#1113) (83970f0)
- report Linux capabilities from live probes and cover the whole grid (#1136) (fc178e0)
- systray: unify tray icon assets and honor SetIcon everywhere (#1172) (2e63f1e)
Performance Improvements
Section titled “Performance Improvements”- linux: resolve focused frame without scanning the whole a11y bus (#1122) (d2934f1)
- linux: use AT-SPI Collection.GetMatches for hint element collection (#1114) (b812044)
1.49.0 (2026-07-27)
Section titled “1.49.0 (2026-07-27)”Features
Section titled “Features”- config: add
--no-reloadforsetand addreset(#1083) (2920864) - config: persistent
config setviaoverridefiles (#1082) (6398fa5) - install: unify the Windows binary, add cross-platform uninstall (#1103) (fc8e1f0)
- linux: support animation for recursive grid (#1089) (b800247)
- recursive_grid: add
--zoom-to-depthflag (#1077) (3dfe895)
Bug Fixes
Section titled “Bug Fixes”- linux,wayland: make evdev capture persistent with kb hotplug support (#1086) (e345661)
- linux,wayland: prevent hotpulgLoop busy wait (#1088) (c519875)
- linux,wayland: prevent stale evdev state from causing stuck keys after grab (#1087) (cdd466a)
- linux,wayland: sync cursor before mode activation (#1091) (f94f72a)
- linux,wayland: use compositor keymap to respect XKB options (#1097) (fb4fe8e)
- linux: disable default global hotkeys to avoid collisions (#1081) (3625f39)
- linux: gate AT-SPI accessibility init and ensure reset on quit (#1085) (986f064)
- linux: recover evdev global hotkeys post-sleep and fix health check (#1092) (154ae6c)
- linux: resolve evdev hotkey deadlock post-suspend and preserve RemoteDesktop session (#1094) (16be957)
- replace startup warning on launch with dynamic capability notice (#1084) (03b2d5c)
Documentation
Section titled “Documentation”1.48.0 (2026-07-20)
Section titled “1.48.0 (2026-07-20)”Features
Section titled “Features”- allow
--modifierin mode--action(#1040) (ba7cb19) - allow multiple clicks for
--actionandaction(#1039) (afea90a) - cli: add
neru config setfor runtime config changes (#1071) (a130074) - darwin,action: add hide and show system cursor action with virtual pointer (#1059) (b3d6feb)
- darwin,hints: auto-detect bundle types (#1035) (db5682f)
- hints,cli: add
--hide-on-empty-searchflag when search is empty (#1044) (a850c32) - hints,vision,darwin: add
--split-wordflag for vision only (#1041) (dfc76db) - make virtual pointer fully customisable (#1061) (7c18422)
- recursive_grid,config: add
label_autohide_multiplierto hide cramped labels (#1054) (d8c4eb3) - recursive_grid: add
label_charandsub_key_preview_label_charconfig options (#1045) (d95bb36)
Bug Fixes
Section titled “Bug Fixes”- cli: write output to stdout so that they are pipeable (#1047) (bcddd01)
- config: ensure
app_configsmerges properly without defaults (#1042) (204c0fd) - darwin: auto-rehide cursor when macOS reveal it (#1065) (a2f6184)
- darwin: use a lightweight handler for space changes (#1032) (83351be)
- guard against integer overflow in allocation size computations (#1074) (f7136b9)
- hints: separate
cycle_hintfrom action execution (#1043) (b65861f) - linux,wayland: sync cursor cache after move relative (#1056) (b0f6a97)
- linux,windows: ensure proper render for configured virtual pointer (#1063) (2f859e1)
- linux: add nocgo stubs for consistency (#1037) (2c27777)
- linux: ensure subkey preview autohide checks the subcell dimensions (#1066) (c1a436d)
- linux: use native relative pointer motion (#1055) (542866f)
- recursive_grid,darwin: pass font family to sub-key preview renderer (#1048) (75ac644)
- recursive_grid,overlay: evenly distribute cells and round centers to nearest pixel (#1046) (e0fee73)
- recursive_grid: distribute remainder pixels contiguiously (#1062) (b9d2367)
Documentation
Section titled “Documentation”- cli: rewrite with proper grouping (#1068) (860db8b)
- troubleshooting: Add notes about element size and element type, clean up Electron/Browser troubleshooting (#1029) (e6d0211)
- troubleshooting: explain missing hints on multi-monitor setups (#1031) (14ec9ed)
1.47.0 (2026-07-13)
Section titled “1.47.0 (2026-07-13)”Features
Section titled “Features”- add
app_configsfor global hotkey overrides (#1008) (b1a4c67) - cli,action: add
--modeflag toaction feedto feed keys into neru (#999) (fe23531) - hotkeys: let per-mode hotkeys override a global hotkey on the same key (#993) (c95ccf5)
- linux,wayland,kde: add
action feedsupport (#1013) (c28300b)
Bug Fixes
Section titled “Bug Fixes”- darwin,stick_modifier: prevent random sticky modifier toggles (#1011) (22bc23c)
- hints: keep labels on screen during refresh instead of blanking (#1012) (4638626)
- hints: lower down
minElementSizeto 10 for smaller sized hints (#1020) (eefb876) - linux,kde: work around KDE EIS keyboard drop bug (#1021) (8ff4a32)
- linux,recursive_grid: render subkey preview properly when enabled (#995) (1da2cd2)
- linux: recover from stale evdev/libei connections after sleep and config reload (#1023) (a43eb4e)
- lower down minimum font size to
1and add missing validations (#1024) (c196b93)
Documentation
Section titled “Documentation”- add bernatGene config showcase (#1010) (32958a6)
- tips: add commands to open a new window and edit config tips (#997) (d2816d3)
- tips: add mode-cycling and element-targeted shortcut recipes (#1004) (fcbcd5b)
1.46.1 (2026-07-07)
Section titled “1.46.1 (2026-07-07)”Bug Fixes
Section titled “Bug Fixes”1.46.0 (2026-07-06)
Section titled “1.46.0 (2026-07-06)”Features
Section titled “Features”- cli: add
--bailflag towait_for_mode_exitfor chain abort-on-cancel (#970) (92289a2) - darwin: new
monitor_selectmode with overlay (#963) (6ba2aab) - darwin: replace Carbon hotkeys with per-hotkey CGEventTaps (#967) (fd77dd5)
- linux,kde: add support for KDE linux (#931) (b7563a4)
Bug Fixes
Section titled “Bug Fixes”- darwin,monitor_select: allow current monitor to be selectable (#964) (ad2dcb5)
- darwin,monitor_select: remove unneeded
isCurrenttheming (#965) (242e37b) - darwin: keep indicators visible after wake changes (#962) (444ccf9)
- darwin: keep mode indicator visible across Spaces (#956) (34b9499)
- windows: correct active monitor detection (#966) (b7b03e1)
1.45.0 (2026-06-29)
Section titled “1.45.0 (2026-06-29)”Features
Section titled “Features”- hints: add
label_directionwith different algo (#934) (9cf45b7) - linux,wayland: render overlay at output buffer scale (#955) (8c8482a)
- windows,overlay: rewrite overlay renderenig with real per-pixel alpha and full theme support (#950) (8b1fa57)
- windows: add native alert dialogs for validation and startup (#948) (1b52c02)
- windows: embed app icon in .exe (#949) (90850f0)
- windows: initial basic support implementation (2b637ba)
Bug Fixes
Section titled “Bug Fixes”- darwin,overlay: keep mode indicator visible after reactivation (#936) (c41f96f)
- grid: avoid overlay redraw flash on mode exit (#954) (5f07607)
- linux,wayland: prevent keyboard grab leak from evdev EINTR and blocked poll (#953) (d1bea3d)
- windows,config: use proper windows path for config, shell and path validation (#943) (c679e6f)
- windows,hints: render badges atomically for correct z index (#952) (208db03)
- windows: align roles for hints and fix styling (#951) (7677bb4)
- windows: auto launch daemon when running .exe (#944) (6d504ef)
- windows: consume non-modifier key-down events to prevent passthrough to apps (#947) (a10a27a)
- windows: ensure exe launches and quit properly (#946) (f12d0cd)
1.44.1 (2026-06-13)
Section titled “1.44.1 (2026-06-13)”Bug Fixes
Section titled “Bug Fixes”- linux,wayland: send 1-notch scroll events to prevent clipping (#927) (0a12df9)
- linux: badge overlay to follow cursor pointer (#920) (5288eee)
- linux: improve sticky modifier detection (#926) (8c685dd)
- resolve fonts via ports on all platforms (#928) (e807897)
1.44.0 (2026-06-11)
Section titled “1.44.0 (2026-06-11)”Features
Section titled “Features”- add
--toggleflag for all modes (#910) (80725a4) - cli: remove actions
space,move_window_to_spaceandfocus_window(#902) (088f535) - config: make held-key repeat configurable (#914) (0230a63)
- default-config: tweak
recursive_grid.min_size_*to 1px (#913) (219015c) - linux,overlay: hook grid colors into theme (8b5df46)
- linux: detect dark mode via xdg portal + kdeglobals (#892) (34d9db4)
- linux: proper theme observer for mode changes (#918) (8b5df46)
- systray: add
Open in Editorfor config (#911) (c8e12f7)
Bug Fixes
Section titled “Bug Fixes”- ensure cross platform log file path (#908) (4aaf9df)
- hints: validate and dedupe hint characters (#916) (c3e5169)
- linux: ensure
devboxworks with properpng-configinitialisation (8b5df46) - properly resolve keyboard layouts on layout switch (#907) (b9e4c6f)
Documentation
Section titled “Documentation”- config: add PWA related docs (#917) (3904ea0)
- config: clarify more about keyboard layout (#905) (d9b3c90)
1.43.0 (2026-06-05)
Section titled “1.43.0 (2026-06-05)”Features
Section titled “Features”- cli: add
focus_windowaction to cycle window on active space (#884) (ead9855) - cli: add action to move focused window to a workspace (#895) (245cfc6)
- cli: add action to switch native workspace by index (#894) (1eb97a5)
- config,hotkey,cli: make
execshell configurable (#890) (d07ce38) - default-config: promote 3x3 recursive grid to default grid (#882) (3e0e581)
- scroll,systray,cli: add
invert_scrollfor direction inversion (#883) (e7d622b)
Bug Fixes
Section titled “Bug Fixes”- overlay,indicator: revert #832 optimisation that causes regression (#887) (1ade137)
- overlay: use dispatch_sync with main thread check for window destruction (#888) (115c27a)
- prevent memory leak during window space transitions (#896) (dc3e284)
Performance Improvements
Section titled “Performance Improvements”Documentation
Section titled “Documentation”- add disclaimer on
spaceandmove_window_to_spaceimplementation (#897) (10304e4) - update installation requirement for macOS to be 14.0 sonoma or later (1f86955)
1.42.0 (2026-05-30)
Section titled “1.42.0 (2026-05-30)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”- ensure screen capture permission flow consistency (#875) (920d85d)
- hotkeys: ensure consistent initialdelay with interval for repeat (#872) (caf1177)
Documentation
Section titled “Documentation”- installation: add nightly homebrew
installandupgradeguide (#878) (40dfe49) - make documenation richer for cli for better man generation (#879) (ddcd631)
1.41.0 (2026-05-28)
Section titled “1.41.0 (2026-05-28)”Features
Section titled “Features”- hints,vision: make vision options fully configurable (#869) (68c590f)
- hints: add
visiondetection strategy (#867) (6fe14f4)
Bug Fixes
Section titled “Bug Fixes”- hints,vision: use
ScreenCaptureKitfor modern macOS (#868) (785f95b) - reduce log noise and remove
structured_loggingconfig option (#864) (ebadd9b) - show
outputin log whenexecfailes in hotkey (#866) (4aa3b95)
1.40.1 (2026-05-26)
Section titled “1.40.1 (2026-05-26)”Bug Fixes
Section titled “Bug Fixes”- retrigger github action due to outage during v1.40 release (8f4800e)
1.40.0 (2026-05-26)
Section titled “1.40.0 (2026-05-26)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”- cli: expose missing
--roleand--textflag on cli (#846) (a5e61a8) - darwin: harden CGo callback singletons with generation-stamped slots (#862) (0ec420a)
- darwin: protect clickState
performLeftClickAtPosition(#853) (a8bdc48) - linux,overlay,wayland: add
MAP_FAILEDcheck after mmap in overlay buffer setup (9ebd520) - linux,overlay,wayland: add
xkb_state_unrefandxkb_context_unrefto overlay destroy (9ebd520) - linux,overlay,wayland: embed key ring in
NeruWaylandOverlayinstead of file-scope singleton (9ebd520) - linux,overlay,x11: add null-check after calloc in
x11_overlay_new(9ebd520) - linux,overlay: close keymap fd outside format check to prevent leak (9ebd520)
- linux,scroll: ensure
__keyup_<key>on release just like darwin variant (9ebd520) - prevent goroutine leak on context cancellation in
processClickableNodesConcurrent(#852) (f76b4a7) - rename variable to ctx to avoid package shadowing (#851) (cabc51d)
Performance Improvements
Section titled “Performance Improvements”Documentation
Section titled “Documentation”1.39.0 (2026-05-23)
Section titled “1.39.0 (2026-05-23)”Features
Section titled “Features”- hints: configurable visibility check for noise reduction (#844) (48b3ff7)
- hints: mission control notifications and actions (#842) (2218dd2)
Bug Fixes
Section titled “Bug Fixes”- hints: ensure ctx cancellation for chaining calls (#839) (c413124)
- hints: reverse hints label to prevent prefix cluster (#845) (7781e24)
- preserve mode flags on mode refresh (#843) (5e63847)
Performance Improvements
Section titled “Performance Improvements”1.38.1 (2026-05-21)
Section titled “1.38.1 (2026-05-21)”Bug Fixes
Section titled “Bug Fixes”- ensure retry to set electron and chromium attrs (#834) (a4f4047)
- overlay: ensure modes overlay resized properly before showing (#835) (9d77d15)
- resolve memory leaks in animations, overlays and indicators (#831) (09181b1)
Performance Improvements
Section titled “Performance Improvements”- eliminate thread explosion (#829) (052418b)
- hints: early exit on out of bounds child on chromium or electron (#836) (cc39c82)
- hints: optimize hint generation and filtering performance (#833) (6818af6)
- optimize overlays memory usage (#832) (8e85dfe)
1.38.0 (2026-05-19)
Section titled “1.38.0 (2026-05-19)”Features
Section titled “Features”- hints: add
AXGenericElementto default clickable role (#810) (f7196c7) - hints: add neru own bundle to menubar targets (#802) (df4c515)
- hints: add support for screen capture thumbnail (#800) (1c2146c)
- hotkey: repeat global hotkey actions while held automatically (#817) (1e0429e)
- scroll,cli: add
--stepsflag for overrides (#824) (e5cee80)
Bug Fixes
Section titled “Bug Fixes”- hints: add explicit
includeOutOfBounds(#813) (b55ec1d) - hints: add popovers, sheets and menus into interactive leaf elements (#805) (582523b)
- hints: allow links in textarea (#828) (6c2c919)
- hints: better clickaction heuristic detection (#812) (8ec5b1b)
- hints: better widget detection (#814) (9bd59cd)
- hints: eliminate hidden elements and simplify filtering (#821) (fc57e51)
- hints: ensure menubar elements include out of bounds (#815) (4a147b3)
- hints: filter zero-sized elements during tree build (#825) (7853065)
- hints: improve mission control detection (#807) (5ae21e2)
- hints: improve notification center hints (#808) (01a670a)
- hotkey: eliminate initial repeat delay for held-key actions (#819) (ad88403)
Performance Improvements
Section titled “Performance Improvements”- hints: add
max_parallel_depthoption and bump to 10 (#826) (d62d723) - hints: faster hints activation (#822) (0f1afcb)
- hints: improve hint visibility checking (#818) (f2be692)
- hints: more parallelizing for element collection (#803) (3d9480e)
- hints: optimise AX API calls (#804) (a8476d3)
- hints: reduce AX roundtrips plus parallel tree workers (#827) (82e0629)
1.37.0 (2026-05-13)
Section titled “1.37.0 (2026-05-13)”Features
Section titled “Features”- add mouse action indicator (#791) (ae285d2)
- hints: add boundary highlights for targeted elements (#793) (8d05247)
- hints: add native PIP support for mac (#795) (0651fee)
- hints: add simple hints placement customisation (#797) (48de8a8)
Bug Fixes
Section titled “Bug Fixes”- config: remove default launcher keybinds if mode is disabled (#788) (68040c4)
- hints: add capability to search text on subtree (#792) (f694847)
- hints: cap hint generation when elements exceed key combinations (#794) (0305936)
Performance Improvements
Section titled “Performance Improvements”1.36.0 (2026-05-10)
Section titled “1.36.0 (2026-05-10)”Features
Section titled “Features”- add smooth scroll animation (#779) (7050362)
- hints,action: add
cycle_hintaction (#783) (aff245b) - hints,cli: add
--searchflag to show search input upon activation (#785) (cc14b02) - hints: add
--roleand--textfilter flags (#772) (142940f) - hints: add
searchcapability similar to homerow (#784) (bdb1046) - hints: add native IME text input session plus improvements (#786) (a226c54)
Bug Fixes
Section titled “Bug Fixes”- cli: properly support comma-separated values for
--roleand--textflags (#773) (0b6b338) - config: replace default launcher hotkeys on rebind (#778) (7486c19)
- hints: ensure menubar item adhere to strictFiltering (#767) (41e9ba8)
- hints: include
AXPopoverwindows (#769) (7cc4b28) - hints: remove
AXTextFieldfrom leaf roles so that finder search works (#770) (7ebaa82) - linux,wayland: do not fallback evdev on first grab fail, try others (#781) (83bb7d7)
- linux,wayland: explicitly enable keyboard interactivity on overlay when evdev fallback (#780) (732f876)
- linux,wlroots: filter out uinput virtual keyboard devices from evdev capture (#776) (4850af2)
1.35.0 (2026-05-06)
Section titled “1.35.0 (2026-05-06)”Features
Section titled “Features”- add
sleepaction for reliability (#761) (f55ab47) - add action feed key passthrough cli command (#759) (f041f13)
- cli: add
--windowflag formove_mousecommand (#765) (610a80b) - grid,recursive_grid: add
app_configs.hotkeyoverrides (#763) (1bbedb5)
Bug Fixes
Section titled “Bug Fixes”- allow macOS notification prompts (#753) (a593a24)
- always run alert UI regardless of binary or bundle (#756) (36ee674)
- cli,feed: preserve uppercase letters in action
feed(#762) (aeba2bb) - ditch
openand purely run the binary for services (#755) (1f9bd4e) - ensure eventtap and passthrough blacklist resolves the same (#754) (c1c7776)
- ensure global hotkeys are canonicalized before event tap registration (#752) (6134d00)
- strict filtering for Chromium/Electron apps (#749) (e53fea7)
Documentation
Section titled “Documentation”- tips: add snippet to
move windowto another native space on macOS (346f892)
1.34.0 (2026-05-02)
Section titled “1.34.0 (2026-05-02)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”Performance Improvements
Section titled “Performance Improvements”Documentation
Section titled “Documentation”1.33.0 (2026-05-01)
Section titled “1.33.0 (2026-05-01)”Features
Section titled “Features”- linux: add
uinputscroll support as first detection layer (#731) (65a9913) - support sticky modifiers on supported linux backends (#719) (957ef8b)
1.32.0 (2026-04-20)
Section titled “1.32.0 (2026-04-20)”Features
Section titled “Features”- add
superandmetamodifier ascmdalias (#703) (997e08a) - add multi-monitor support (#704) (8316f4f)
- add NixOS module and Linux systemd support for home-manager module (#695) (c2da28c)
- initial implementation for
x11andwlrootsfor wayland (#694) (af4dea7) - move_monitor: consolidate monitor movement and actions (#706) (9088c57)
Bug Fixes
Section titled “Bug Fixes”- allow single-row and single-column recursive grids (#684) (e9e43e6)
- cli: add more profile information to
doctorcommand (#686) (83dc84d) - hints: guard visible rows lookup against zero-count results (#689) (9f87280)
- hints: honor app-specific clickable roles during element discovery (#692) (3ab2381)
- hints: traverse AXHeading nodes when building the hint tree (#691) (f45689a)
- nix: add libxi for build input (bdc47e8)
- preserve recursive-grid animation for count-changing layer transitions on macOS (#682) (c720ecc)
- split daemon startup by platform plus some shut down fixes (#693) (6315c8a)
- sticky_modifier: prevent from misfiring on multi-modifier hotkey activation (#710) (f5da80a)
- use
primarymodifier instead ofcmdfor cross platform (#701) (5e24e4a)
Documentation
Section titled “Documentation”- add missing configurations that should be presented (#687) (994ed70)
- remove
triggerkeyword and update home manager setup for linux (b0190ff)
1.31.0 (2026-04-04)
Section titled “1.31.0 (2026-04-04)”Features
Section titled “Features”- config: add semantic theming and unify overlay color defaults (#676) (0ec0159)
- config: unify color configuration with light/dark theme support (#674) (20937cd)
- recursive_grid: add opt-in native depth transitions/animation (#678) (e1edf43)
Bug Fixes
Section titled “Bug Fixes”- add capability reporting and remove global config access (#669) (239e464)
- anchor sticky modifiers to virtual cursor in grid modes (#671) (460bb56)
- config: add default cursor-follow toggle for grid modes (#665) (14a0f48)
- config: explicitly add ”`” in default-config file (bc909d9)
- config: remove
tap_cooldownfield (78c8c1b) - recursive_grid: ensure move cursor to selection when enable
toggle-cursor-follow-selection(#680) (d562d67) - show a lightweight virtual selection pointer in hold mode (#666) (48a1c0e)
- sticky_modifier: stabilize activation and chord handling (#667) (18f374c)
- treat manual relative mouse moves as selection override (#663) (e3d920f)
1.30.0 (2026-03-28)
Section titled “1.30.0 (2026-03-28)”Features
Section titled “Features”- add per-mode custom hotkeys (#633) (c23426b)
- add support for cursor selection mode (#660) (16a7042)
- cli: add —repeat flag to re-activate mode after action (#637) (24c6ff1)
- cli: add scroll actions (#635) (2e5dc48)
- config: merge hotkeys and custom_hotkeys on top of defaults instead of replacing (#647) (cc2a6d1)
- config: support multiple actions per hotkey binding (#642) (39ed7fa)
- hints: support app-specific hotkey overrides (#649) (e22d3ab)
- unify in-mode bindings under custom_hotkeys and remove legacy keybinding fields (#643) (27a7c8b)
Bug Fixes
Section titled “Bug Fixes”- apply sticky modifiers to IPC-triggered click actions (#654) (09099a4)
- cli: rename
restore_cursortorestore_cursor_posfor consistency (#644) (a6044a9) - config: rename
mode.custom_hotkeystomode.hotkeysfor consistency (#648) (ec91ac0) - honor recursive-grid repeat for direct actions (#641) (d464d66)
- sticky_modifier: auto arm modifier detection after short delay (#657) (3bec95c)
- sticky_modifier: gate auto-arm timer on nav mode with sticky modifiers enabled (#658) (ab8afbd)
Documentation
Section titled “Documentation”- add
sleepuse cases for clicking and moving cursor (ca5ba20)
1.29.1 (2026-03-22)
Section titled “1.29.1 (2026-03-22)”Bug Fixes
Section titled “Bug Fixes”- alert: use UserNotifications framework for alert if possible (#628) (5ebadd0)
- nix: use
openwith flags instead of running the binary in launch agent (#629) (ae635f8) - sticky_modifier: add debounce and cooldown to prevent Karabiner conflicts (#625) (9052dee)
- sticky_modifier: emit physical key events when toggled (#627) (1a3ecb1)
1.29.0 (2026-03-21)
Section titled “1.29.0 (2026-03-21)”Features
Section titled “Features”- cli: add docs command to open version aware docs (#617) (d4e591b)
- scroll: add action key support to scroll mode (#616) (dc7d7b1)
Bug Fixes
Section titled “Bug Fixes”- config: allow disabling all hotkeys via empty [hotkeys] section (#611) (ced7236)
- config: remove unnecessary defaults for exclusions (#612) (d38e5c8)
- overlay: make label arrow looking nicer in sizing (#619) (cab1b80)
- rename bundle binary from
Nerutoneru(#621) (ee93475)
Performance Improvements
Section titled “Performance Improvements”Documentation
Section titled “Documentation”- add config showcases to documentation from discussion (947077c)
- add homebrew repo link (d26fd65)
- add tips & tricks to documentation from discussion (bcb2301)
- change INFO to NOTE for proper rendering on github (e65b497)
- cli: improve readability and add more info (1f7f571)
- config: improve readability and add missing configuration keys (9c48371)
1.28.0 (2026-03-18)
Section titled “1.28.0 (2026-03-18)”Features
Section titled “Features”- add config onboarding flow on first launch (#600) (04cae66)
- cli: add
neru config initandneru config validatecommands (#598) (e4b0b91) - cli: expand neru doctor into a comprehensive diagnostic tool (#603) (e140297)
Bug Fixes
Section titled “Bug Fixes”- cli: prevent duplicate error messages in CLI commands (#604) (cd7221b)
- exit on config validation failure instead of silently continuing with defaults (#601) (41dc09d)
- hints: clear accessibility cache before showing hints to prevent stale positions (#606) (31414f2)
1.27.1 (2026-03-16)
Section titled “1.27.1 (2026-03-16)”Bug Fixes
Section titled “Bug Fixes”- scroll: remove
ctrlfor pageup and pagedown in default config (#596) (02be302) - sticky_modifier: add tap duration threshold for sticky modifier toggle (#594) (4aba731)
- support simultaneous modifier key taps for sticky modifiers (#592) (c902db8)
1.27.0 (2026-03-15)
Section titled “1.27.0 (2026-03-15)”Features
Section titled “Features”- action: add
--monitorflag to move_mouse--centerfor multi-monitor support (#579) (a2c34fb) - action: support
--modifierflag (#581) (f51c379) - add modifier+action workflow for modes (#586) (16a2e71)
- hotkeys: add support for left/right-prefixed modifiers (#582) (9914ec8)
- passthrough: add
should_exit_after_passthroughoption (#575) (4f386c9)
Bug Fixes
Section titled “Bug Fixes”- ipc: replace static ProtocolVersion with build version validation (#583) (d9f4ba1)
- make smooth cursor animation non blocking (#580) (cd818ba)
- normalize key aliases (enter, backspace, esc) in modifier combo bindings (#588) (140cc31)
- recursive_grid: ensure to normalise
keyToCell(#565) (0f531dc) - recursive_grid: make autohide preview multiplier configurable (#573) (a26acf4)
- sticky_modifier: cancel pending modifier toggle on passthrough events (#589) (2f3406c)
Documentation
Section titled “Documentation”1.26.0 (2026-03-11)
Section titled “1.26.0 (2026-03-11)”Features
Section titled “Features”- add app icon with brand new systray icon (#546) (be8a856)
- mode_indicator: customisable text and mode respective colors (#549) (357f9ca)
- passthrough: refresh hints mode after modifier shortcut passes through to OS (#551) (31ba19b)
- recursive-grid: add sub-key preview mini-grid inside each cell (#540) (19349ea)
- recursive-grid: support individual layer customisation for cols, row, keys (#554) (75cff13)
- support
passthroughunbounded keys to the OS (#541) (47db376) - support mode specific
exit_keysthat merges with the globalexit_keys(#543) (1eaed7f)
Bug Fixes
Section titled “Bug Fixes”- build: ad-hoc codesign app bundle in justfile, CI release workflow and nix (#547) (da3fe6b)
- eventtap: prevent use-after-free by always dispatching cleanup asynchronously (#556) (277f4fa)
- eventtap: remove 150ms enable delay for instant key capture after mode activation (#555) (8c6d0df)
- recursive-grid: avoid center sub-key preview overlap (#558) (4daea67)
- slim down default config and improve docs (#552) (3b48bc7)
1.25.0 (2026-03-08)
Section titled “1.25.0 (2026-03-08)”Features
Section titled “Features”- action: add —center flag to move_mouse command (#516) (d462bbe)
- hotkeys: support function keys F13 through F20 (#524) (5ba6fc4)
- make
backspaceconfigurable in config for each mode (#530) (c989188) - overlay: implements auto detected
paddingandborder radiuslabels (#526) (6f12b54) - recursive-grid: add optional rounded label badge backgrounds with theme-aware styling (#512) (d74c3d1)
Bug Fixes
Section titled “Bug Fixes”- centralize key mapping with unified ValidNamedKeys registry (#531) (9127b7a)
- config: disable file logging by default (#529) (30bb9ee)
- config: move all visual related configuration to
uisection (#533) (3947c75) - config: propagate service config updates during hot-reload (#521) (26d1d19)
- config: rename corner_radius to border_radius for consistency (#532) (0e14253)
- cursor: add settling delay before cursor restore after click actions (#514) (da4de9d)
- docs:
backspaceis not supported forreset_keyfor now (#520) (7e14d56)
1.24.0 (2026-03-06)
Section titled “1.24.0 (2026-03-06)”Features
Section titled “Features”- add theme-aware default for label_color - Closes #489 (#491) (9d22a6e)
- cursor: Add
center_cursor_positionoption (#504) (32f903a) - implements program wide theme aware config for all colors (#500) (8201eb4)
- stable reference keyboard layout with auto-detection and config override (#507) (c5cad50)
Bug Fixes
Section titled “Bug Fixes”- config: revamp the default colors (#505) (c8b4d99)
- eliminate duplicate configSnapshot() in app activation path (#494) (972181b)
- ipc: wire IPC reload through app-level config reload and fix stale config (#496) (6ce064d)
- lifecycle: remove dead q.Style write, keep cache invalidation (#495) (315134a)
- prevent event tap from blocking native thread and fix deadlock in callback cleanup (#509) (9b98230)
- recursive-grid: execute action on final depth selection instead of when reaching max depth (#502) (920104d)
1.23.0 (2026-03-04)
Section titled “1.23.0 (2026-03-04)”Features
Section titled “Features”1.22.1 (2026-03-03)
Section titled “1.22.1 (2026-03-03)”Bug Fixes
Section titled “Bug Fixes”- default reset_key to space in grid and recursive-grid modes (#481) (b39c6a9)
- docs: need
--actionfor command with action (0789121)
1.22.0 (2026-03-01)
Section titled “1.22.0 (2026-03-01)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”1.21.4 (2026-02-28)
Section titled “1.21.4 (2026-02-28)”Bug Fixes
Section titled “Bug Fixes”- add mutex to protect indicatorConfig from concurrent access (#469) (79aecb8)
- bridge: add mutex to protect global appWatcher from data races (#465) (7db27b8)
- bridge: add mutex to protect global logger from data races (#464) (ec6cf07)
- bridge: cancel pending enable block in disableEventTap (#451) (38f399a)
- config: change default font_size to
10.0(#449) (d387caa) - config: close Watch channel on context cancellation (#470) (6996684)
- hints: preserve mode state during refresh and enable auto-activation (#454) (7a1accc)
- infra: add mutex synchronization for eventtap adapter state transitions (#471) (56b2045)
- lifecycle: resolve TOCTOU race in handleScreenParametersChange (#466) (bbc0ba6)
- logger: resolve data race in global logger access (#463) (f6c4d0c)
- overlayutil: validate generation to prevent stale callback race (#467) (9788b42)
- recursivegrid: add screen-change handling with callback-based resize and TOCTOU guards (#468) (a6fc091)
- scroll: add mutex synchronization for context state access (#472) (c10bcfe)
1.21.3 (2026-02-25)
Section titled “1.21.3 (2026-02-25)”Bug Fixes
Section titled “Bug Fixes”- accessibility: add pointer fast-path in Element.Equal to avoid CGo on cache hits (#438) (1a2a3f8)
- accessibility: use nil instead of empty slice for leaf node children (#437) (a422f9a)
- bridge: avoid temporary NSString allocation in prefix matching loops (#435) (32451f4)
- bridge: use NSSet for O(1) lookup in NeruDrawIncrementGrid removal pass (#436) (5fb5551)
- eventtap: replace dispatch_sync with os_unfair_lock for hotkey lookup (#433) (029b767)
- gc: replace runtime.ReadMemStats with runtime/metrics to avoid STW pause (#439) (3c97f48)
- grid: gate runtime.ReadMemStats behind debug log level in DrawGrid (#441) (d94227f)
- grid: reuse Grid.Index() in drawGridIncrementalStructural instead of rebuilding maps (#445) (0ea1493)
- hints: avoid map allocation in hintsAreStructurallyEqual on hot path (#442) (2b239bf)
- hints: remove element caching from HintService (#444) (cb45be1)
- hints: replace fmt.Sprintf map keys with image.Point in drawHintsIncrementalStructural (#443) (b495951)
- overlays: cache hint labels and add drawMu to prevent use-after-free across all overlays (#434) (30243d9)
- overlay: use dirty-rect partial redraw for match-prefix-only updates (#431) (2ca0373)
- overlay: use system font as default, cache NSFont, and improve font resolution (#446) (5f5c08a)
- tree: add sync.Pool for TreeNode to reduce GC pressure (#440) (b4e9290)
1.21.2 (2026-02-24)
Section titled “1.21.2 (2026-02-24)”Bug Fixes
Section titled “Bug Fixes”- accessibility: use priority queue for per-role TTL eviction in InfoCache (#422) (420ea16)
- eventtap: use O(1) lookup table for hotkey matching (#425) (77c80fa)
- hints: add max_depth config for accessibility tree traversal safety (#420) (4d40358)
- hints: make parallel tree-building threshold configurable and lower default to 20 (#427) (112e6fd)
- overlay: cache parsed hex colors to eliminate redundant parsing (#426) (82de189)
- overlay: replace NSDictionary with typed model classes for hint and grid cell data (#423) (3d5158e)
- replace per-node debug logs with aggregate statistics (#429) (34ead23)
1.21.1 (2026-02-23)
Section titled “1.21.1 (2026-02-23)”Bug Fixes
Section titled “Bug Fixes”- accessibility: prevent AXUIElementRef leaks by releasing tree nodes after use (#418) (fd80ec3)
- bridge: add explicit __strong qualifiers to ObjC fields in EventTapContext struct (#417) (1809167)
- bridge: enable ARC and fix memory management in bridge package (#416) (00ce086)
- overlay: include size in hint dicts and use position as center directly (#415) (a931c5a)
- overlay: switch to layer-backed rendering with Retina/multi-monitor support (#412) (77e2be5)
- overlay: use NSPanel with non-activating style to prevent focus stealing (#414) (d04a0c4)
1.21.0 (2026-02-22)
Section titled “1.21.0 (2026-02-22)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”1.20.0 (2026-02-20)
Section titled “1.20.0 (2026-02-20)”Features
Section titled “Features”- recursive_grid: allow
grid_colsandgrid_rowsinstead of a fixed NxN (#404) (84c445e) - recursive_grid: split
min_sizetomin_size_widthandmin_size_height(#405) (50ce224) - rename
quadgridtorecursive_grid(#403) (1c251bb) - systray: add version-aware docs URL with fallback to main (#400) (28f3c9b)
- use hex alpha for transparency control (#399) (50f4056)
Bug Fixes
Section titled “Bug Fixes”1.19.0 (2026-02-19)
Section titled “1.19.0 (2026-02-19)”Features
Section titled “Features”- add screen share overlay hiding via config, CLI, and system tray (#390) (dad9b7a)
- hints: add opt-in Mission Control detection with hybrid caching (#387) (b215c83)
- quadgrid: add configurable grid size support (#393) (cb4479b)
1.18.3 (2026-02-16)
Section titled “1.18.3 (2026-02-16)”Bug Fixes
Section titled “Bug Fixes”- config: normalize fullwidth CJK characters in key comparison (#385) (123b6fd)
- keymap: fix thread safety issues — use-after-free, MRC memory leaks, and TIS main-thread requirement (#384) (515b0af)
- remove unused
flake.lock(57363f6)
1.18.2 (2026-02-15)
Section titled “1.18.2 (2026-02-15)”Bug Fixes
Section titled “Bug Fixes”- eventtap: include Shift modifier in key callback and normalize special key strings (#379) (4c7a2b3)
- keymap: debounce keyboard layout change notifications (#378) (b66c425)
- keymap: derive kKeyCodeMaxPrintable from enum for robustness (#381) (b11a459)
- keymap: generic keyboard layout support (#376) (81be0db)
- keymap: pre-cache Shift+Caps modifier combination (#380) (965c29c)
1.18.1 (2026-02-10)
Section titled “1.18.1 (2026-02-10)”Bug Fixes
Section titled “Bug Fixes”- hint_service: optimize cache access with RWMutex and batch cleanup (#371) (d8f3e18)
- overlayutil: release callback ID on timeout and cancel paths (#370) (314e78b)
- state: add unsubscribe support to enabled state callbacks (#373) (6ccb54f)
- systray: ensure NSApplication runs on main thread to prevent SIGTRAP (#375) (619848a)
- systray: properly link to
bug reportandfeature requeston github (#367) (2a1bb38)
1.18.0 (2026-02-07)
Section titled “1.18.0 (2026-02-07)”Features
Section titled “Features”- systray: add ability to toggle visibility of systray via config (#365) (de0fcd0)
- systray: add submenu separator and more help links (#361) (117e86a)
- systray: remove
systraydependency with own implementation (#357) (27a21ed) - systray: restructure menu items and add notification for copy version (#359) (1ccdf8b)
Bug Fixes
Section titled “Bug Fixes”1.17.1 (2026-02-02)
Section titled “1.17.1 (2026-02-02)”Bug Fixes
Section titled “Bug Fixes”- overlay: ensure grid borders are visible at screen edges (#355) (a0fdd77)
- quadgrid: nicer quadgrid default border (#356) (45030c0)
- ui: offset odd border widths for nicer grid rendering (#353) (01cddd0)
1.17.0 (2026-02-02)
Section titled “1.17.0 (2026-02-02)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”- bypass input method by mapping key code directly (#346) (11bc421)
- eventtap: resolve race conditions in lifecycle management (#348) (518ca19)
1.16.0 (2026-01-31)
Section titled “1.16.0 (2026-01-31)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”- bridge: ensure overlays persist across macOS spaces (#340) (34d1933)
- bridge: resolve overlay issue on spaces and full screen (#342) (3d347d5)
- lifecycle: only resize overlays when need to (b78317e)
1.15.1 (2026-01-26)
Section titled “1.15.1 (2026-01-26)”Bug Fixes
Section titled “Bug Fixes”1.15.0 (2026-01-24)
Section titled “1.15.0 (2026-01-24)”Features
Section titled “Features”- accessibility: add support for macos stage manager for hints (#330) (bed96d8)
- add configurable mouse action refresh delay for hints mode (#324) (cffc408)
- add mouse movement via keyboard and CLI commands (#309) (0b09be6)
Bug Fixes
Section titled “Bug Fixes”- accessibility: resolve menubar instability and race conditions (#328) (1cbe1c3)
- hints: prevent stale hints from displaying during label refresh (#326) (8ea4154)
1.14.1 (2026-01-18)
Section titled “1.14.1 (2026-01-18)”Bug Fixes
Section titled “Bug Fixes”- action: improve mouse_down/mouse_up reliability for native macOS apps (#299) (a60bd2d)
- improve plist with nix (#305) (84d1aeb)
1.14.0 (2026-01-08)
Section titled “1.14.0 (2026-01-08)”Features
Section titled “Features”1.13.0 (2026-01-08)
Section titled “1.13.0 (2026-01-08)”Features
Section titled “Features”1.12.3 (2025-12-26)
Section titled “1.12.3 (2025-12-26)”Bug Fixes
Section titled “Bug Fixes”1.12.2 (2025-12-21)
Section titled “1.12.2 (2025-12-21)”Bug Fixes
Section titled “Bug Fixes”1.12.1 (2025-12-12)
Section titled “1.12.1 (2025-12-12)”Bug Fixes
Section titled “Bug Fixes”- accessibility: adjust mouse click event timing to prevent in-transit clicks (#272) (2889bef)
- add grid character validation and custom labels support (#269) (0a16068)
- grid: fix prefixes not initialized in cached grids (#271) (01f92f4)
- prevent empty grid state when typing invalid key sequences (#270) (b2dd915)
- support numbers and symbols in grid and hints character configurations (#267) (6fe4513)
1.12.0 (2025-12-02)
Section titled “1.12.0 (2025-12-02)”Features
Section titled “Features”- add devbox development environment support (#261) (7551025)
- cli: implement services CLI for launchd management (#258) (f6e014a)
- nix: add launchd configuration options to home-manager module (#256) (8e2e1c7)
- overlay: implement native macOS overlay windows for grid and hints rendering (#253) (52eebb1)
Performance Improvements
Section titled “Performance Improvements”- comprehensive performance optimizations for hint generation, caching and accelsibility processing (#259) (ac62d79)
1.11.1 (2025-11-30)
Section titled “1.11.1 (2025-11-30)”Bug Fixes
Section titled “Bug Fixes”1.11.0 (2025-11-30)
Section titled “1.11.0 (2025-11-30)”Features
Section titled “Features”- modes: add Action and Scroll navigation modes with Mode interface (#238) (8c55ec4)
- test: enhance integration tests with comprehensive coverage (#242) (f44b1ea)
Bug Fixes
Section titled “Bug Fixes”Performance Improvements
Section titled “Performance Improvements”- implement accessibility query optimization (#245) (9ab4930)
- implement grid rendering optimizations (#247) (dda783f)
- implement hint filtering performance optimizations (#246) (8076df5)
- implement memory management optimizations (#248) (f54dedc)
1.10.5 (2025-11-28)
Section titled “1.10.5 (2025-11-28)”Bug Fixes
Section titled “Bug Fixes”- config: fix app-specific hints configuration and add tests (#223) (1ca2c38)
- overlay: clear overlay when switching from scroll to hints/grid mode (#228) (20a23ea)
- scroll: improve responsiveness of scroll mode activation (#225) (7377a74)
Performance Improvements
Section titled “Performance Improvements”1.10.4 (2025-11-27)
Section titled “1.10.4 (2025-11-27)”Bug Fixes
Section titled “Bug Fixes”- cleanup for some unused code and functions (#211) (3093084)
- grid: ensure grid overlay style updated in
reload config(#208) (c08cb2a) - hints: ensure hints using the configured config styles than just defaults (#209) (f7e808c)
- logger: add consoleWriter parameter to Init for output control (#215) (6fbf809)
- minor refactoring to ensure functions are not too long (#212) (99ccfbf)
Performance Improvements
Section titled “Performance Improvements”1.10.3 (2025-11-26)
Section titled “1.10.3 (2025-11-26)”Bug Fixes
Section titled “Bug Fixes”- add coding standard with stricter golangci config (#196) (8ab3f3b)
- add more test and update some existing tests (#192) (50a59af)
- clang indent tab and format (#202) (8536bef)
- cleanup some obvious comments and add some comments within complex functions (#203) (58f5164)
- crash in grid bench and move all bench test to its own file (#191) (97263a3)
- ensure tests are all with blackbox approach (#189) (33c2223)
- make most struc private and expose getter and setter (#197) (83bdde4)
- no magic numbers and some refactoring to adhere coding style (#200) (04433ec)
- remove
Getkeywords from getter (#198) (342b0bd) - remove unneeded globals (#194) (4418fd3)
- update flake to support overlays [skip ci] (#195) (cea0a6e)
1.10.2 (2025-11-25)
Section titled “1.10.2 (2025-11-25)”Bug Fixes
Section titled “Bug Fixes”- lifecycle: ensure
handleScreenParametersChangewill refresh overlays including state and style (#186) (883a13a) - logger: remove noises that doesn’t bring value for debugging (#188) (c119abf)
1.10.1 (2025-11-24)
Section titled “1.10.1 (2025-11-24)”Bug Fixes
Section titled “Bug Fixes”- metrics: provide toggle to enable metrics collection, off by default (#183) (f7b6532)
- more test to improve coverage (#179) (7b4d521)
- remove all
GetScrollableElements(#184) (5340972) - standardize error handling and include
err113lint (#185) (3d1888e) - tighten golangci lint and refactoring variables (#181) (e570663)
1.10.0 (2025-11-23)
Section titled “1.10.0 (2025-11-23)”Features
Section titled “Features”- cli: add —action flag for hints and grid commands (#167) (d41bc99)
- config: remove subgrid_enabled option and make subgrid always enabled (#171) (970962e)
- implement program wide DI and initial testing suite (#175) (bf29d4e)
Bug Fixes
Section titled “Bug Fixes”- add IPC timeout with flags and 5 sec default (#155) (6e5bd24)
- allow smooth mouse movement (#159) (63cb580)
- config: ensure reliable reload and improve startup validation UX (#169) (8127e49)
- do not restore cursor if switches to scroll action (#152) (d5ed1d5)
- domain based refactoring & update comments (#157) (b5d6c96)
- enhance codebase robustness and error handling (#165) (b3e6188)
- ensure clean scroll context when switching mode (#163) (cd69912)
- ensure just fmt pointing to new bridge location [skip ci] (#162) (1089e10)
- focus on performance optimisation (#173) (74b61f4)
- grid: move mouse to cell center when showing subgrid (#172) (bcedcd0)
- hints: prevent cursor restoration during hint mode transitions (#170) (83922f0)
- improve godoc and remove noises for obvious or not needed comments [skip ci] (#164) (3a3c2b2)
- improve logging and add config dumps (#154) (bc99f53)
- make uuid direct in go.mod (#176) (bb2bbe2)
- modes: reset cursor state when exiting scroll mode via ESC (#174) (12f2124)
- more tests (#177) (a019a53)
- remove
:from exec (#168) (385f2ce) - restructure the codebase to be more concise (#161) (a089c13)
- use faster default smooth cursor for config (#160) (97c8af7)
1.9.0 (2025-11-16)
Section titled “1.9.0 (2025-11-16)”Features
Section titled “Features”1.8.0 (2025-11-16)
Section titled “1.8.0 (2025-11-16)”Features
Section titled “Features”- add
actioncli that act on current cursor position (#126) (52aaba6) - add submode for action that is configurable and allow to <tab> through (#144) (770fc42)
- allow different action colors configuration for grid, same as hints (#129) (61307c8)
- centralize overlay into a single manager and window (#146) (70c4fbe)
- grid based navigation mode (#111) (441192b)
- grid: optimize for square cells across all screen types (#122) (d40d990)
- simplify actions (#141) (49629ff)
Bug Fixes
Section titled “Bug Fixes”- add missing grid cli for various actions (#125) (c92d09e)
- add more loggings throughout the program for better viewabilitiy (#130) (a6ab8d7)
- allow hiding unmatched in grid (#113) (59bcca6)
- do not clear hintOverlay when cleaning up grid (#142) (d31648f)
- ensure backspace can successfully return back to main grid with state (#136) (ae139b1)
- ensure different screen sizes and resolution gets the best grid (#115) (6016fce)
- ensure grid and hint dont sleep when refresh overlays (#124) (e35c486)
- ensure grid is clicking on absolute point, not relative points (#118) (c08b2a9)
- ensure hints working across multi displays (#117) (29cf0cb)
- grid: only call
ResizeToActiveScreenwhen it is needed, not every activation (#123) (856f0b6) - improve ci for formatting, linting and vetting go and objc files (#149) (4d09a16)
- improve linting with more checks (#147) (6091077)
- improve log retention with rotation with more configurable options (#145) (87a85e7)
- improve matched_text highlihts to only highlight the prefix text (#137) (6d6e639)
- improve perf for grid by caching the labels plus more optim (#139) (41fc4ed)
- improve resize callback handling for better UX (#132) (38dbdd9)
- make actions point based instead of element based (#110) (472a390)
- make grids more predictable than always linearly showing the labels (#131) (808ca14)
- more improvements on linting configuration and fixes (#148) (80e0544)
- more perf for grids and hints (#140) (013025c)
- only use default hotkey when not configured (#143) (f6629cf)
- react to screen changes and support extended displays for grid (#116) (1fd81c2)
- refactoring and move domain based implementation to internals (#108) (9675949)
- remove subgrid cell and row config, as we are fixing it to square 3x3 (#127) (56d89d2)
- restrict keys to only available cells (#114) (d819d72)
- restructure config and move ax related to hints section instead (#128) (a9947dc)
- separated restore cursor for grid (#112) (f91567f)
- slightly improve memory for overlay.m (#138) (84bd351)
- update default values (#119) (7a946bb)
1.7.1 (2025-11-09)
Section titled “1.7.1 (2025-11-09)”Bug Fixes
Section titled “Bug Fixes”1.7.0 (2025-11-09)
Section titled “1.7.0 (2025-11-09)”Features
Section titled “Features”- implements
triple clickand simpledrag and dropwith mouse down and mouse up on a target (#102) (ee89ce1) - more robust cli and IPC handling + flexibility in hotkey mappings (#103) (e1eefbe)
Bug Fixes
Section titled “Bug Fixes”- add version copy for systray (#92) (2e7242b)
- allow <tab> key to toggle between scroll hint and scroll mode (#87) (5fa4c15)
- allow <tab> to switch between hints and hints_action (#93) (44ef64e)
- allow scroll hints styles to be configurable (#88) (84e087c)
- auto mouse_up calls after mouse_down (#104) (f789391)
- chill
shouldIncludeElementchecks (#96) (3141ace) - ensure
statuscommand shows the right message when using default (#91) (4873616) - ensure to init the same style for default scrol hints (#89) (0e0fc86)
- implements
IsMissionControlActiveto only show hints for mission control when active (#95) (9ac2295) - make scroll configuration easier and put everything in pixel (#90) (401da6b)
- more refactor for main package (#99) (ed1c635)
- nicer color for matched texts in hint (#100) (ba7e3c9)
- refactor
main.goand split them out, also update build command (#98) (2e98331) - simpler scroll mechanism (#85) (edd608f)
- vertical action menu without magic heuristic numbers (#101) (9c2405d)
- wrong key for
scroll_step_fullin default config [skip ci] (#94) (c15e203)
1.6.0 (2025-11-07)
Section titled “1.6.0 (2025-11-07)”Features
Section titled “Features”- add more actions to systray (#83) (af3e11d)
- add more actions to systray menu for Neru (#76) (5c121db)
- allow to bypass heuristic checks for scrollable and clickable (#81) (60af71b)
- also allow per-app ignore checks (2803d0d)
- make scroll areas dynamic with available areas (#79) (bded86e)
- revamp hotkey to support custom bash script and IPC calls (#82) (09633de)
- split out electron, chromium and firefox supports (#74) (6b842f6)
- use app watcher to enable electron accessibility (#73) (2b9e0e5)
Bug Fixes
Section titled “Bug Fixes”- add conditional parallelize for tree building (#72) (21c06aa)
- always force to US keyboard (#75) (a76b29f)
- avoid memory leak and proper cleanups (#80) (1845299)
- centralize app watcher into single instance (#78) (b81a7c0)
- move timer based watcher for hotkeys registration to app watcher (#77) (ae4e6cd)
- removing maxDepth checks (#70) (53e0557)
1.5.1 (2025-11-06)
Section titled “1.5.1 (2025-11-06)”Bug Fixes
Section titled “Bug Fixes”- add defaults to the config to support launch on bundle start (#67) (30049e0)
- root cmd to auto launch when in app bundle (#65) (0af1e45)
1.5.0 (2025-11-06)
Section titled “1.5.0 (2025-11-06)”Features
Section titled “Features”- allow configurable additional targets for menubar by bundle IDs (#60) (bca0da2)
- implement bundle to work locally (#62) (7f18d45)
Bug Fixes
Section titled “Bug Fixes”- add cache for elements and improve tree walking duration (#58) (22b1fa3)
- allow 3 characters for maxHints (#63) (641c2b9)
- no need to check isEnabled in go code (#59) (ce753d9)
- optimize tree building and element finding with parallelization and simple ttl caching (#54) (008f827)
- remove
isclickableandisscrollableproxy and call it directly (#56) (e94de63) - remove configurable maxHints and derive it from
hintChars(#61) (3745e68) - replace complex
visibleChildrenlogic withAXVisibleRowdetection (#57) (ac896fb)
1.4.0 (2025-11-04)
Section titled “1.4.0 (2025-11-04)”Features
Section titled “Features”- add notification center hints (configurable) (#49) (5e28692)
- update branding to
neru(#52) (7f9922b)
Bug Fixes
Section titled “Bug Fixes”1.3.0 (2025-11-03)
Section titled “1.3.0 (2025-11-03)”Features
Section titled “Features”- allow configuration for restore cursor position (#47) (d5e5d87)
- new action to move mouse to a position (#46) (9efc9eb)
Bug Fixes
Section titled “Bug Fixes”- chromium support fix (#43) (f8c8463)
- replace all click actions to use actual mouse click rather than accessibility (#45) (7ebfaef)
1.2.0 (2025-11-03)
Section titled “1.2.0 (2025-11-03)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”- apply heuristic checks for clickable elements (#38) (f6be55d)
- dynamically add menubar and dock roles when enabled (#37) (ab53a03)
- properly check for electron with dynamic maxDepth (#36) (a10bdf7)
1.1.1 (2025-11-02)
Section titled “1.1.1 (2025-11-02)”Bug Fixes
Section titled “Bug Fixes”- ensure dock getting hints and does not crash the program (#28) (b572f58)
- improve large list traversal with progressive checks (#30) (5c3a0e3)
- move around config keys to places that make more sense (#31) (a929ec6)
- standardize rect query and do not consider padding for bounds (#32) (fff37f5)
1.1.0 (2025-11-02)
Section titled “1.1.0 (2025-11-02)”Features
Section titled “Features”Bug Fixes
Section titled “Bug Fixes”- auto deregister hotkeys when focused app is excluded (#26) (b5811ef)
- ensure we can activate other modes when in a mode (#21) (5f8e29e)
- make action hints style configurable to be visually difference (#22) (8510d03)
- remove clickable role injection (#19) (707eb8d)
- remove numeric hint, feels useless (#24) (8db6945)
1.0.3 (2025-11-01)
Section titled “1.0.3 (2025-11-01)”Bug Fixes
Section titled “Bug Fixes”1.0.2 (2025-11-01)
Section titled “1.0.2 (2025-11-01)”Bug Fixes
Section titled “Bug Fixes”- allow to unset global hotkeys (#10) (a0fc0bf)
- ensure correct config exposes to
statuscommand (#8) (f2e3f1e) - remove reload config (#11) (a493743)
- remove root run and requires
launchcommand to start daemon (#12) (efbf00a)
1.0.1 (2025-11-01)
Section titled “1.0.1 (2025-11-01)”Bug Fixes
Section titled “Bug Fixes”- ensure action to run with
cgoenabled (#6) (0963c66) - ensure checking from ./bin instead of ./build (#4) (8ee6942)
1.0.0 (2025-11-01)
Section titled “1.0.0 (2025-11-01)”Features
Section titled “Features”- actually implement middle click (3783a60)
- add ci (#1) (0aab5c0)
- add hint support for dock and menubar (7c08d53)
- allow additional clickable roles in config (f893bb4)
- better hints (4685a7f)
- init project with implementation (43d255e)
- initial try to support electron (86db6f7)
- more hint modes (3badbbb)
- nicer action hints (2a712b0)
- nicer hint with arrow (e83c5b8)
- only check visible child for ax (2c1252b)
- support
-vand--version(ba29ea1) - support backspace to go back during hint mode (8399942)
- support global and per-app ax roles (677e1c4)
- switch to cobra-cli with IPC socket for normal actions (958989e)
Bug Fixes
Section titled “Bug Fixes”- actually properly support chrome and electron (5f6ec2d)
- add fallback and validation for empty hint_characters (36b8c64)
- configurable roles for scroll and hint (735c98c)
- ensure config for hint styles are passed through (8679355)
- ensure event loop runs in main thread (6826fdb)
- ensure to flush event after clicks (cb1d5ab)
- explicit validation for scrollAreaByNumber (bdbce7f)
- fallback to actual click if press action failed (e186bb1)
- make matched hint color text configurable (fd0980f)
- make sure
ctrl-cactually kills the program (a566cf9) - more logs for additional accessibility (407f992)
- refactor scroll magic numbers to be constants (521df2a)
- remove
escapemapping (a795e2b) - remove action mapping from config (6974c7d)
- remove stupid animations (97a390c)
- remove unneeded smoothscroll function (fb77bdc)
- remove unused config (23df329)
- some improvement for pre-production (b0e5a79)
- sort of working scroll mechanism (cd4376a)
- support 3 characters hint without clashes (7120ded)