https://github.com/emadda/robata
macOS window selector
https://github.com/emadda/robata
macos
Last synced: about 1 year ago
JSON representation
macOS window selector
- Host: GitHub
- URL: https://github.com/emadda/robata
- Owner: emadda
- License: other
- Created: 2024-08-15T23:16:55.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-08-27T13:18:42.000Z (almost 2 years ago)
- Last Synced: 2025-04-05T05:13:11.426Z (about 1 year ago)
- Topics: macos
- Homepage: https://robata.app
- Size: 7.81 KB
- Stars: 12
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# Robata
Put it on the grill.
Robata is a window selector app for macOS.
[Download for macOS](https://github.com/emadda/robata/releases/download/v-001/Robata-001.dmg).
Please [report any issues or feedback you have](https://github.com/emadda/robata/issues).
You can also contact me at [enzo@robata.app](mailto:enzo@robata.app).
Learn more: [robata.app](https://robata.app).
# Keyboard shortcuts
- Open/close Robata UI to show windows
- Touch the bottom left of any trackpads attached.
- cmd-§
- (or cmd-` for US keyboards)
- The § or ` key is above the tab key.
- You can customize this in the settings.
- Works similarly to cmd-tab.
- z
- Zoom.
- If you hover over a window the zoom is centered there, otherwise the closest image center is used.
- c
- Close window currently under mouse.
- cmd-d
- Discover windows.
- Window discovery only needs to be done when Robata first opens - macOS window APIs only allow reading windows that have been on an active space.
- Spaces can only be switched to when an app focuses on one of its own windows on that space.
- To find all your windows, this creates a small window on each space, visits each space, and then closes.
- It should take around 10 seconds.
- Or you can manually switch to different spaces instead.
# Custom methods of opening
By default the bottom left of any attached trackpads open Robata. You just need to rest your finger lightly (no tap needed).
You can customize this via Robata -> Settings.
You can attach your own keyboard or mouse shortcuts to toggle Robata using any of these methods:
- Via the .app file.
```
# Toggles the UI.
open /Applications/Robata.app
```
- Custom URL schemes.
```
robata://show
robata://hide
robata://toggle
```
Used in a shell script:
```sh
#!/bin/sh
open "robata://toggle"
```
- Tap the Dock icon.
- Apple Shortcuts.
- `Settings ▶ Keyboard ▶ Keyboard Shortcuts... ▶ App Shortcuts ▶ Add Robata`
- Alt-tab.
# Permissions
Robata requires:
- Settings -> Privacy & Security -> Accessibility
- Settings -> Privacy & Security -> Screen & System Audio Recording
Drag and drop the app onto these lists and enable the toggle.
It only uses the screenshot API whilst the UI is being viewed. Accessibility is required for access to window titles, sizes and to the trackpad.
# Security: Apple Notarized
Robata is [notarized](https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution) by Apple, which has the following benefits:
- It has been scanned and verified to be malware free.
- The app cannot be modified in any way, so the code that was checked by Apple is the code that runs.
- The developer ID is verified.
- Apple can remotely disable any apps found to contain malware in the future.
Robata does not access the network or disk whilst it runs.
# Acknowledgements
Thanks to the developers of open source projects for their discovery and documentation of the Apple APIs that allows reading macOS spaces.
You may want to give them a try if Robata does not suit your needs:
- [https://github.com/Hammerspoon/hammerspoon](https://github.com/Hammerspoon/hammerspoon/)
- [https://github.com/lwouis/alt-tab-macos](https://github.com/lwouis/alt-tab-macos)
- [https://github.com/rxhanson/Rectangle](https://github.com/rxhanson/Rectangle)
- [https://github.com/koekeishiya/yabai](https://github.com/koekeishiya/yabai)
- [https://github.com/ianyh/Amethyst](https://github.com/ianyh/Amethyst)
- [https://github.com/kasper/phoenix](https://github.com/kasper/phoenix)