Git Product home page Git Product logo

squirrel's Introduction

Logo

Squirrel

๐Ÿฟ๏ธโ€‚Pronounced: Scroll-Wheel

A menu bar app that adds scrolling to the simulator.

  • For some reason, you can't scroll in Xcode's simulator.
  • This app enables scrolling again!
  • Features: customizable settings, made with SwiftUI, and a cute squirrel.

Installation

You can download Squirrel on the App Store.

Alternatively, get the ZIP file, or use Homebrew:

brew install hkamran80/things/squirrel-for-simulator

Note: Squirrel requires macOS Big Sur (11.0) or higher.

Screenshots

Main Menu Advanced Settings
Light Mode
Menu Bar
Dark Mode
Menu Bar Dark Mode
Menu Bar Expanded
1. You start scrolling 2. Squirrel drags on the screen for you 3. Your cursor auto-snaps back to where you started
Screenshot of simulator Screenshot of simulator, blue pointer shown at initial cursor position. Cursor is dragged higher up. Screenshot of simulator, cursor is back at its original position.

Videos

Squirrel.mp4
Simulator.mp4

Notes

  • Press ESC to stop scrolling in case something bugs out.
  • Trackpad support is currently unstable, but most scroll wheels / mice should work.
  • Customization Reference - General:
    • Enabled - whether Squirrel is active.
    • Natural Scrolling - toggles the scroll direction.
    • Pointer Color - the color of the cursor pointer.
    • Pointer Size - the length of the pointer.
    • Pointer Opacity - the opacity.
    • Pointer Scale - scale the pointer by this when scrolling starts.
  • Customization Reference - Advanced:
    • Launch Simulator On Startup - launch the Simulator when Squirrel starts.
    • Quit If Simulator Is Closed - auto-quit the app when the Simulator isn't active.
    • Scroll Steps - how many iterations to get to the final scroll value.
    • Inactivity Timeout - how many seconds to wait before stopping scroll.
    • Scroll Interval - how often to execute a scroll step.
    • Top Inset - top insets to cancel out simulator bezels. Only allow scrolling when the cursor falls inside the inset frame.
    • Left Inset - same as above for the left side.
    • Right Inset - same as above for the right side.
    • Bottom Inset - same as above for the bottom side.
    • Simulator Location - the file path of the simulator, for Launch Simulator on Startup.
    • Simulator Check Frequency - how often to check if the simulator is alive, for Quit If Simulator Is Closed.
    • Max Height - the maximum height of the menu popover.
    • Menu Width - the width of the menu popover.

Community

Author Contributing Need Help?
Squirrel is made by aheze. All contributions are welcome. Just fork the repo, then make a pull request. Open an issue or join the Discord server. You can also ping me on Twitter. Or read the source code โ€” there's lots of comments.

How does it work?

Squirrel uses your Mac's accessibility controls to simulate a "drag" gesture.

Apple, if you're reading this:

Please add native scroll support to the Simulator! Feels like such a small feature but it'll be very welcome.

License

MIT License

Copyright (c) 2023 A. Zheng

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

squirrel's People

Contributors

aheze avatar atrinh0 avatar dlackty avatar hkamran80 avatar jordanekay avatar kaitheredninja avatar ratnesh-jain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

squirrel's Issues

It does't work in My Simulator.

Thanks for the app, but it can not work on all my simulators.

I'm using Xcode 13.4.1,

and my mac is

MacBook Pro (13-inch, M1, 2020)
Apple M1
macOS Monterey v12.6.1

Is something wrong?

One of the simulator doesn't work with squirrel

Thanks for the app, it really helps working with the simulator all day long! ๐Ÿ™

The issue that I have is that only one of my simulators doesn't work with squirrel but the rest of simulators does as shown in the gif below (left is the simulator that works with squirrel and the right doesn't - keep in mind scrolls can't be captured but I did the best I can to show it ๐Ÿ˜…)
CleanShot 2023-02-05 at 07 07 31

What I tried and none of it worked:

  1. Uninstalling/Installing again from both zip/brew/app store
  2. Removing/reapplying accessibility permission for squirrel
  3. Erased all content and settings for the simulator

Does not appear in Settings

I'm on Ventura 13.1 (22C65) and I can't seem to enable the accessibility permissions. I restarted both settings and the menu app multiple times, but Squirrel doesn't appear in the list.

Update with 'brew upgrade --greedy' results in installing another cask with same name

STR:

  1. brew install hkamran80/things/squirrel
  2. brew upgrade --no-quarantine --greedy

Outputs:

==> Downloading https://github.com/aheze/Squirrel/releases/download/1.0.0/Squirrel.zip
Already downloaded: /Users/egigoka/Library/Caches/Homebrew/downloads/80457f17a48c2da0cdcf7f1863e841cb60446301e520041281c338bf8742e07e--Squirrel.zip
==> Installing Cask squirrel
==> Moving App 'Squirrel.app' to '/Applications/Squirrel.app'
๐Ÿบ  squirrel was successfully installed!
==> Upgrading 1 outdated package:
squirrel 1.0.0 -> 0.16.1
==> Upgrading squirrel
==> Downloading https://github.com/rime/squirrel/releases/download/0.16.1/Squirrel-0.16.1.zip
Already downloaded: /Users/egigoka/Library/Caches/Homebrew/downloads/433bd3348d17419a136d01b6bb525a546ecaadd082a9a1b3d24474554ef2c3ce--Squirrel-0.16.1.zip
==> Backing App 'Squirrel.app' up to '/opt/homebrew/Caskroom/squirrel/1.0.0/Squirrel.app'
==> Removing App '/Applications/Squirrel.app'
==> Running installer for squirrel; your password may be necessary.
Package installers may write to any location; options such as `--appdir` are ignored.
installer: Package name is Squirrel
installer: Installing at base path /
installer: The install was successful.
installer: The install requires logging out now.
==> Purging files for version 1.0.0 of Cask squirrel
๐Ÿบ  squirrel was successfully upgraded!

doen't work on external display

When i have the Simulator window on my main (built-in) macbook display, it works.

But i don't even get a blue dot when I use that same Simulator window on my external (via USB-C) monitor.
(after dragging the window back to my main display, it works again)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.