Mjrusso Scoot Versions Save

Keyboard-driven MacOS cursor actuator

v1.2

1 year ago

This release (dramatically!) improves the reliability of clicking (as well as dragging and dropping). For more details, see #28.

Huge thanks to @diegolhambi for identifying the fix 🙌

v1.1

1 year ago

This release fixes various bugs with grid-based and element-based nav, specifically for users that have their system configured to always show the Dock. For more details, see #29.

v1.0

1 year ago

Version 1.0! 🎉

This release polishes a few rough edges:

  • Scoot will activate faster when using the grid-based and freestyle navigation modes, because it now defers the work of traversing the frontmost app's accessibility tree until you actually ask to use the element-based navigation mode. (See #25 and #26 for more details. The performance improvement can be significant, depending on what app is frontmost and how many elements are on screen.)

  • Scoot's element-based navigation mode will work more reliably and consistently with apps that don't enable accessibility-related features by default, such as Firefox, Chrome, anything built with Electron, etc. See 2e6bd2f4b6164052c4366da0889cea943f44b5ff for the specific change here, and refer to #11 for additional context.

  • Scoot will no longer automatically activate itself on first launch. (You'll particularly appreciate this if you've configured Scoot to start automatically when you log in. If this is something you're interested in, add Scoot to your Login Items — see the installation instructions for more detailed instructions.)

Enjoy, my fellow Scooters!

v0.12

2 years ago

Scoot now has a Settings screen! Access it by clicking Scoot's menu bar icon, then “Preferences
”.

There are a handful of new customization options, including:

  • record global keybindings
  • modify font size used for labels in grid view
  • modify font size used for labels in element view
  • change color scheme (the "primary" and "secondary" colours used by the app)

All existing settings are also exposed in this window, too:

  • switch between Emacs and vi keybinding modes
  • modify contrast of grid view
  • modify contrast of element view
  • modify size of cells in the grid
  • toggle grid lines and grid labels on/off (independently)

All settings changes persist across app launches.

Additional changes:

  • Scoot now uses the monospaced flavour of the system font for the grid and element labels.
  • Scoot now has a custom About screen.

Alas, it is not possible to use Scoot's element-based nav mode to interact with the new Settings or About screens; this is being tracked in #24.

v0.11

2 years ago

Scoot now works across Spaces! (As a bonus, Scoot will also now properly hide itself from Exposé.)

This release also fixes a handful of multi-display bugs. In particular:

  • Cursor movement works properly when the primary display is not the largest display.
  • Scoot will reliably handle any display change (such as connecting/disconnecting displays, changing the arrangement of displays, etc.).
  • When using the element-based nav mode, Scoot will always properly find elements, even if the focused window of the frontmost app is on a non-primary display that is logically arranged immediately above or below the primary.

(For more details about the multi-display bugs, see #18.)

v0.10

2 years ago

This release improves element-based navigation, by ensuring that the location of drawn elements are automatically updated in response to scrolling. (See #3 for more details.)

Additional changes:

  • This release introduces a new Debug menu (including options for logging state, and re-building application state).

  • Another change was made to the menu bar icon: previously, the "filled" version of the icon was used when Scoot was inactive (in the background), and the "outlined" image was used when Scoot was active (in the foreground). In this release, these are swapped: the outlined image is used in the inactive state, and the filled image is used when active. (This seems more natural, as the icon now has more “weight” in the active state.)

  • Numerous refinements were made to logging, improving the utility of collected logs.

v0.9

2 years ago

This release improves support for simulating clicks, corrects an issue with the vi bindings, tweaks the menu bar icon, and improves logging.

Click simulation

Middle clicking and right clicking are now supported.

Some existing click-related keybindings were changed (specifically, the keybinding for holding down the left mouse button, and the keybinding for double clicking). Why? There are no longer any click-related shortcuts that require modifier keys to be held down to trigger. The benefit is that it is possible to hold down modifiers while clicking, and they'll be properly handled by the system. For example, you can now use Scoot to Command-click, or Command-Option-click, etc.

For more details, refer to the documentation.

Logging

Scoot generates better logs, and it's now significantly easier to find the relevant log messages.

To find the relevant logs, filter for subsystem:com.mjrusso.Scoot in Console.app.

Instead of tinting the menu bar icon, the icon now displays in an outlined fashion. (Whatever colour is underneath your menu bar will poke through, instead of Scoot introducing its own colour—which might not be appreciated on aesthetic grounds.)

Bug fixes

  • Corrects an issue with the vi keybindings: now 'j' and 'k' will now move in the direction you'd expect.

v0.8

2 years ago

This release adds support for vi-style keybindings, a new "freestyle" mode, and a handful of other improvements.

vi bindings

To turn on vi keybindings, execute the following command in your terminal:

defaults write ~/Library/Preferences/com.mjrusso.Scoot.plist KeybindingMode vi

If Scoot is running, you'll need to restart it after running this command.

To restore the default keybindings:

defaults write ~/Library/Preferences/com.mjrusso.Scoot.plist KeybindingMode emacs

(Eventually, the plan is to expose this configuration via a settings UI.)

See #12 for more details on the feature, and refer to the documentation for details about specific keybindings.

Freestyle mode

Freestyle mode is an alternative usage mode, invoked with the ⇧⌘L global keyboard shortcut. When activated, it will bring Scoot to the foreground, but not activate any of the special "character based decision tree" machinery for moving around.

Of course, all of the other keyboard shortcuts for cursor movement are supported (including the new vi-based ones, if you've opted in).

When Scoot is activate (i.e., in the foreground), the menu bar icon will display with a tint. This is especially useful in freestyle mode, enabling you to quickly validate whether Scoot is active (as it doesn't render any other UI to the screen).

Note that I'm not sure how I feel about this one. Modifying the icon when Scoot is active is a good idea, but introducing colour might not be. (Let me know what you think!)

Bug fixes

  • Scoot will no longer crash when activated when a) Zoom is the frontmost app, and b) you're in an active Zoom meeting. This was a curious one; see #13 for more details.

  • If you modify the size of the grid cells while the grid view is being displayed, the grid UI will now properly re-render to reflect the changes.

v0.7

2 years ago

This release dramatically improves element-based navigation.

In particular, Scoot will now:

  • find more elements on screen, and
  • identify elements in apps that don't automatically expose accessibility data (such as Firefox, Chrome, and most Electron-based apps); see #11 for more details, and
  • draw easier-to-read labels, especially in cases where many elements are located in close proximity to each other

Note that this release drops support for MacOS 10.15 (Catalina).

v0.6

2 years ago

Scoot now supports element-based navigation (hooray!), which complements the existing grid-based navigation mode.

The existing ⇧⌘J global shortcut now activates Scoot in element-based nav mode. To use grid-based navigation, use the new ⇧⌘K global shortcut.

For more information about element-based nav, see #1.