Hacker Newsnew | past | comments | ask | show | jobs | submit | rxhanson's commentslogin

Without knowing about Jef Raskin's ideas, I implemented something really similar to one of them in one of my Mac apps, Superkey. This idea in the Canon Cat was that you hold down a key and type text that you want to select anywhere in a document, then let go to select it - typically faster than reaching for a mouse or hitting arrow keys. In the Canon Cat it was an additional key (the leap key), below the space bar.

For the implementation in Superkey, you can select a key to use for this, like caps lock. The way I use it is I hold the caps lock key and type text, then the app uses OCR and optionally the macOS Accessibility API to search for matching text. Releasing the key or hitting enter will click (or double or triple click, etc) on a match.

Raskin's idea was of course more text-editing focused, and tapping on the leap keys will also move the cursor. I typically use Superkey to navigate UIs quickly, kind of as though UIs all have keyboard shortcut navigation. There are also limitations that Superkey faces, like not having access to offscreen parts of a document.


Hmm, I think I'd want that to be a toggle, not a hold; it seems like it would be difficult to type a longer search keyword/phrase while holding down a key.


You can also set a keyboard shortcut to activate it as a toggle.


Brilliant idea for power users. Are there any comparable apps for Linux or Windows?

Edit: Supposedly there isn't one for windows, wow. https://www.reddit.com/r/windowsapps/comments/1cfw3bw/iso_ap...


Not that I'm aware of, but I do have plans to at least bring some version of this to Windows at some point.


I made a PCB for a keyboard and built it with forward and backward leap keys, “use front” keys etc, copying the Canon Cat. Now I “just” have to write the actual text editing software/OS for whichever microcontroller I end up using, and a case to hold it all together.


Consider checking out this fellow's project. He's making an e-ink text editor: https://www.youtube.com/playlist?list=PL5jL92TrQ803IKtdFwmUC...


Oh yeah I’m subscribed to that channel and have been following along. That has some characteristics I’m interested in, but using my own hardware lets me make different decisions, like adding the leap keys I mentioned, and use full sized keys.


> you can select a key to use for this

Might be a good use for a foot pedal I have lying around!


what happens if there are multiple matches in the document?


(author) Next one in sequence. You can leap forwards or backwards. On the Cat, there is also a LOCAL LEAP for within the current document only.


Good to know, that's what I was expecting. I'll have to give the Cat a spin! Also, thanks for this article and the Jef Raskin one - I thoroughly enjoyed them and their depth. I was in the middle of reading the book version of folklore.org (Revolution in the Valley) and these were a pleasant surprise.


Thanks for the kind word! They were fun to write.


In Superkey, all of the matches are highlighted yellow, and the selected one is highlighted green with a line to it from the text field. You can keep typing to narrow down the match, or you can navigate matches using the arrow keys (and optionally, cycle through them with the semicolon key, which is what I use). There's a screenshot at https://superkey.app.

For the Canon Cat, I'm actually not sure as I've only watched videos of this functionality there.


just downloaded Superkey and am trying it

how do I cycle using the arrow keys? currently using the arrow keys moves the cursor for the text in the search box

edit: tab seems to work. but sometimes Seek only works on one monitor (the one which has a window is selected), sometimes it finds results on both


Up and down arrow keys will cycle matches.

At the moment the Accessibility API results are limited to the frontmost window; it's on my todo list to expand this to additional windows and displays. Also, the green line will only be drawn on results on the main display - another item I plan on fixing.


If you don't mind me asking, what are the warts? I'm always interested in improving the app.


One difference I've noticed is that with Magnet, if you have a window 'maximized' by dragging it into the top of the screen or pressing the shortcut for it, when you start dragging it down from the top of the screen to unmaximize it, it instantly returns to its original size, whereas with Rectangle it stays maximized for some time after you start dragging it which is pretty annoying.

Another thing is the way Magnet moves and resizes windows seems to create less visual 'flashing' than Rectangle's method, for instance Rectangle will resize, then move, then resize again when maximizing a window, which can create a really pronounced 'flashing' effect. That's not to say Magnet has no 'flashing' ever, there's certain situations where it does and to my understanding it seems necessary due to the limited nature of moving and resizing windows on macOS (I guess you have to do one then the other and can't both move and resize simultaneously?), but to me Magnet's methods often look visually better.

Rectangle is great though, I've switched to it from Magnet and these are just some minor gripes.


Good to know! I'm surprised that Magnet has any improvement over Rectangle in these areas, since Rectangle isn't really adding any overhead to the Accessibility API commands, but I'll have to investigate.


Rectangle Pro user here -- biggest frustration I've had is configuration. While the GUI is nice for seeing all the options and some basic stuff, when it comes to actually configuring App Layouts it's been a nightmare of clicking around. I went so far as to export my config so I could modify it with a text editor and then re-import it but the config itself includes serialized JSON as values so to accomplish what I wanted to I had to de-serialize the json, make the changes I wanted to, re-serialize it, then re-import it back into Rectangle, all while hoping I didn't mess up the re-serialization step. This ended up taking more time than if I had just painfully clicked through the interface.

Personally, I wish Rectangle had the option of storing configuration in a simple dot file in my home dir but I understand that would prevent syncing through icloud, which is a feature I imagine a lot of folks like. Barring that, I wish rectangle could export/import the configuration in a more editor friendly way so I could make these configuration changes much faster and more easily ensure consistency across settings.


Thanks for the feedback! I agree and have had some ideas for improving this - one of them being copy/paste and drag behavior where you could copy a selection in Rectangle Pro and paste it as prettified JSON in an editor, and vice-versa. The dot file idea is also one that I like - it's just a surprisingly large effort to "do it right". Making UI's for representing this complexity is kind of tricky, and what's there now is actually my first cut - something that I figured I would iterate on but haven't gotten the time together to do it.


Are you the Rectangle dev? I appreciate your work! How did you get into developing tools for macOS? Were you filling your own needs?


Glad you like my software! A long time ago, I had some RSI issues that were alleviated by using the Magic Trackpad, and this led me to create the Multitouch app[0] to add a bit more functionality to the Magic Trackpad. From there I wanted to add in window management, and ended up rewriting Spectacle as Rectangle. I feel really lucky to have people enjoying the things I've built!

[0]https://multitouch.app


You do great work!


I have had a quick look at Rectangle. I'm currently using Hammerspoon, but it has problems moving windows quickly and precisely, so I wanted to see if Rectangle does better.

The main thing missing for me is being able to use mouse buttons to move windows: I have a Kensington Expert Mouse and I use buttons 3 and 4 for some actions.

Actually, the built-in keyboard shortcuts for moving spaces with Mission Control have the same problem, so I have configured Hammerspoon to turn the mouse clicks into key presses. I suppose I could do the same thing with Rectangle, tho it's annoying to have to rely on multiple apps.


You know, honestly I don't recall. From what I do remember, I had checked the repo and I believe it was something you were working on but it was going to require a really big lift. I wanted to be very charitable with you in my above comment. I used Rectangle for a decent amount of time and overall it was pretty great. I only switched because of a time/money consideration, not because of a vote of no confidence, which is not something I can always say. Keep up the great work!


Rectangle has worked well for me in the past, but recently, it's been losing a lot of windows. I often have to restart Brave to get Rectangle to be able to control it again.


Rectangle is FOSS.

https://rectangleapp.com


FWIW Rectangle is FOSS

https://rectangleapp.com


I'm the developer behind Rectangle. There are a handful of features in Rectangle that aren't in Magnet, like being able to repeat shortcuts to achieve different sizes/positions, and being able to modify a lot more of the behavior of the app (there are more settings, and there are terminal commands listed on the readme of the GitHub repo). The main draw is that Rectangle is FOSS, which comes with obvious benefit.

Beyond that, Rectangle Pro (paid, closed source) is where I've put a ton more features. You can find Rectangle & Rectangle Pro at https://rectangleapp.com


Thanks - sounds totally worth checking it out!


Rectangle is a drop-in replacement for Spectacle, and provides an option upon first install to select the Spectacle default keyboard shortcuts. Note that Spectacle only included keyboard shortcut window management, while Rectangle also includes the drag to screen edge snapping.


I was hoping to move over to Google Cloud Domains, too. Looks like Google Cloud Domains "is to be fully deprecated as part of this sale".

https://twitter.com/GergelyOrosz/status/1669726481130434563


Yes, there is an API for this in macOS, and I use it in two of my apps (multitouch.app and charmstone.app). The haptic feedback is really subtle though and it doesn't give the full power of the feedback that is in the trackpad, which limits the usefulness of it. You can make it buzz for longer durations to make it more apparent, but then it starts to get annoying. I think there is a private framework that can give you stronger haptic feedback, if I remember right (I avoid private frameworks).


I just happened to make a post about this today, too, in the form of a quick tutorial with Automator to turn the hidutil commands into an app that can be configured in launch on login system settings, if desired:

https://medium.com/ryan-hanson/key-remapping-built-into-maco...


Charmstone [1] is a different take from everything mentioned here (I'm the developer).

The idea is to use your spatial memory to switch/launch apps faster than anything else that I've found, with a smaller learning curve and less memorization.

You can use keyboard shortcuts with the arrow keys, modifier keys + cursor movement, or a trackpad gesture.

[1] https://charmstone.app


Neat idea. I just downloaded it. How can I use just the keyboard, e.g. with arrows to select one the apps in the switcher? Using the mouse is a nonstarter for me.

EDIT: oh duh "display with arrow keys". Nice. Going to try this out for a while. It's definitely way faster than cmd + tabbing through my many apps.


Tried it out. I like this idea, but requiring two hands is a deal-breaker for me. I need to be able to switch apps while my hands are over the keyboard without needing mouse/trackpad interaction, ideally staying as close to home row as possible.


Thanks for trying it and for the feedback. Would you use it if you could set the keyboard shortcuts to mod+hjkl or something like that, rather than mod+arrow keys?


Just tried it. Great tool.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: