This is a simple macOS menu bar app that reverses the scrolling direction for mouse wheel events. It provides a seamless way to toggle scrolling behavior for mouse and trackpad input without interfering with the default system behavior.
- Reverses the scrolling direction specifically for mouse input.
- Respects macOS default behavior for the Shift key (e.g., swapping scroll axes).
- Minimalist design with a menu bar icon and no visible Dock presence.
- Easy to quit via a menu item.
- macOS 15.1 (Sequoia) or later.
- Swift 5 or later.
- Xcode for building and running the project.
- Clone the repository to your local machine.
git clone https://github.com/apotatoa/Reverse-Scrolling.git cd Reverse-Scrolling
- Open the project in Xcode.
- The
Reverse-Scrolling-Info.plist
file should be generated as you build. This file is required for the app to build and run. - Build and run the project in Xcode.
The app:
- Creates a global event tap to intercept scroll wheel events.
- Identifies the input device (mouse or trackpad) using the
scrollWheelEventIsContinuous
field. - Reverses the scroll direction for mouse input while maintaining the natural scrolling behavior for the trackpad.
- Skips reversal when the Shift key is pressed, preserving macOS's default behavior.
The app places an icon in the menu bar:
- Symbol: Two circular arrows to represent the toggle behavior.
- Clicking the icon provides a menu with a single option to quit the app.
- Input device detection relies on macOS's
scrollWheelEventIsContinuous
field, which may not perfectly differentiate between all input types. - Debug logs are disabled in the release build but can be re-enabled for development purposes.
- The app respects macOS's default behavior for the Shift key to swap axes during horizontal scrolling.
- Launch the app. It will appear in the menu bar but not in the Dock or app switcher.
- Scroll using a mouse or trackpad to observe the reversed behavior for mouse input.
- Press and hold the Shift key to use macOS's default axis-swapping behavior.
- Use the menu bar icon to quit the app when needed.
- Initial alpha release of the Reverse Scrolling Menu Bar App.
- Core functionality to reverse scrolling direction for mouse input while maintaining default trackpad behavior.
- Menu bar integration with a quit option.
- Known issue: Limited input device detection capabilities.
Download the latest release from the GitHub Releases page.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Submit a pull request detailing your changes.
This project is licensed under the MIT License. See the LICENSE
file for more information.
Created by Luke S.