HN user

_chendo_

381 karma

Problem solver. Gadget enthusiast. Tinkerer. Co-founder of Assembly Four.

Posts5
Comments68
View on HN

Hey! Creator of Shortcat here. Glad to hear that Shortcat helps mitigate the cursor lag. I wouldn’t have thought Shortcat would be used on an EInk display!

Glad to see I'm not the only one that wanted this workflow!

I added this the first cut of this feature to iTerm2 about a decade ago because I often work in the terminal, but sometimes need to reference files elsewhere in my workflow. The feature was named "Semantic History" although in hindsight, it's not a very good name.

To use, hold Cmd and click+drag the path to where you want to drop it. Behind the scenes, the current working directory is stored with the position of the buffer, so it works on relative paths even when you change your working directory. On Cmd+Drag, it searches the buffer around the cursor until it finds a valid path to work with.

I'm thinking about doing something similar to highlight where Shortcat's about to click cause I do agree that it could be better in that aspect. The amount of elements Shortcat will be able to pick up will be far greater than an OCR-based solution though

Thanks! I don't have a way to take tips yet, but you can support by pushing for developers to improve their accessibility implementations when you run into issues!

I see you found the setting for that. It was a deliberate default initially as the intended way to use Shortcat is to activate Shortcat and type what you want without waiting to see hints, as this is generally faster and less mental overhead IMO, especially for fast typists and well-structured interfaces.

However, some people prefer minimal keystrokes and I get that. I'm trying to figure out the right set of defaults to make it friendly to new users while nudging people to how Shortcat is designed to be used and will be tweaking it as I go.

I'm not sure if an app like Shortcat can be released on the App Store given it uses the Accessibility APIs (sandboxing etc), also the 15-30% cut they take is a bit ooooof, but I do have plans to support company/teams licensing!

Oooooh, Hunt and Peck indicates that it's possible to make a Shortcat for Windows!

I would probably need to pay someone to build that particular version though cause the last time I built anything for Windows was like 15+ years ago

Haha, thanks :)

I did charge for it a couple of years ago, however I rebuilt the whole thing from scratch after a long hiatus and hadn't had bothered to reimplement licensing because the existing options all kinda suck, and figured I'd focus the time on features and usability first. I think with the modal mode in the next release will bring it much closer to a 1.0 release.

I have plans to use ML/OCR to augment results down the road but the AX APIs and ecosystem on most apps (that I encounter, at least) are generally decent. Also, OCR means it won’t understand buttons with just icons, whereas AX APIs can grab em just fine.

Thanks! It’s easily my longest running project at a decade

I've built an app that has the same goals (not operate a mouse) but approach it completely different.

Rather than try to simulate the moving the mouse itself, Shortcat [https://shortcat.app/] indexes the user interface (buttons, text fields, links, menus, etc) and enables fast fuzzy search of the interface. Type a word, abbreviations, or hints and hit Enter to click or action the element. Works almost everywhere on macOS, including browsers, Electron apps, and even iOS apps!

The goal is to minimise cognitive overhead to achieve a particular intent, so being able to type a word to hit a button, or active a deep menu item when you don't know the shortcut is quick and easy.

I'm currently working on a modal option which enables staying within Shortcat to navigate an interface, as well as chords for simulating scrolling and arrow keys.

Shortcat relies on using the Accessibility API to index UI elements however, and is dependent on how well an app or website has implemented it. One of the goals is to help improve accessibility implementations by exposing more people to its implementations and pushing for developers to fix broken or incorrectly implemented accessibility tagging.

Shortcat is macOS only for now as I haven't been able to investigate how viable doing this on Windows or Linux would be, especially on Linux considering all the different toolkits that exist.

Blocking Kiwifarms 4 years ago

If they're so worried about FOSTA, it seems bad for their Head of Sales to offer services to an escort directory, no?

Blocking Kiwifarms 4 years ago

Cloudflare knowingly fronts many sites that violate FOSTA. They only cared when Switter made the press.

Cloudflare gave us no warning when they suspended our account.

What makes even less sense is that Cloudflare's Head of Sales emailed us offering their services when we mentioned we were getting DDOSed as an escort directory.

Blocking Kiwifarms 4 years ago

We never told you we were violating SESTA. We never waved it in your face. You could have given us some warning, but you didn't.

Until you show evidence on your work to overturn/repeal SESTA, I'm going to call bullshit on that.

Cloudflare knowingly fronts many other sites that are clearly violating SESTA, so obviously you don't think it's that big of a liability as you claim to be.

Not to mention your Head of Sales reached out to us offering Cloudflare services a year after kicking Switter off when we mentioned we were dealing with DDOS attacks as an escort directory.

Cloudflare still fronts many sites that are most definitely violating SESTA, but presumably Cloudflare chooses to look the other way when they're taking money, or the CEO doesn't have a problem with the site.

Glad you loved the concept!

Unfortunately I've been rather busy the last couple of years and haven't had the capacity to work on Shortcat, and coupled with not being amazing at Obj-C/Swift/Cocoa (my major contributions are FuzzyAutocomplete and the initial POC for Semantic History in iTerm2), being frustrated with building UIs on Mac (mostly build web stuff). There's also the problem that Accessibility APIs aren't well-documented and isn't commonly used, and applications not implementing Accessibility correctly (and potentially causing crashes in Shortcat, or making the target application hang), which was super tough to deal with as a solo dev.

I did have a crack at bringing the Swift-based prototype up to date with Swift 5 on the weekend, and am investigating the feasibility of using SwiftUI which would help me on the UI front! Ideally I'd find another dev to work on Shortcat (rev-share or otherwise), and consider a more sustainable pricing model.

I think tools that depend on Accessibility APIs that are used by people who don't normally depend on Accessibility APIs can force developers to improve their AX implementation so people who do depend on good Accessibility to use applications can benefit.

It makes me happy to hear that it was good enough for you to buy another copy!

How did you discover Shortcat in the first place?

Hello!

Glad to see more people making tools around the Accessibility API. I've been working on a similar app called Shortcat (https://shortcatapp.com) almost 8 years ago (wow) but haven't had the time to properly work on it. It sounds like you're encountering a lot of the same problems I've had when I was starting out (figuring what's actionable, forcing keyboard layout etc). Let me know if you want to chat about the various problems in that space

Oh hey! Still kicking about but haven't really done Mac dev for a couple of years. Hope you're doing well too and keep up the great work with iTerm2!

It should, I originally built it for rspec output but it should work with most common formats that put the line number attached to the path with a colon.

Semantic History is pretty handy and not well-known. It lets you Command+Click on a path to open it in your editor (or associated application).

It also lets you Command+Drag a path to get a usable file-handle to drop into other apps that handle file-related dropzones.

Demo video I made when I added the feature: https://vimeo.com/21872771