AI prompts
base on Invert scroll direction for physical scroll wheels while maintaining "Natural" scrolling for trackpads on MacOS # UnnaturalScrollWheels
![App Icon](/../master/UnnaturalScrollWheels/Assets.xcassets/AppIcon.appiconset/256x256.png?raw=true "App Icon")
Invert scroll direction for physical scroll wheels while maintaining "Natural" scrolling for trackpads on MacOS.
![Screenshot](/../master/Screenshots/Screenshot.png?raw=true "Screenshot")
## Why? What does it do?
For some reason in macOS, toggling the "Scroll direction: Natural" option in *Mouse* settings also changes it in *Trackpad* settings despite being in separate places.
![Mouse Settings](/../master/Screenshots/MouseSettings.png?raw=true "Mouse Settings")
![Trackpad Settings](/../master/Screenshots/TrackpadSettings.png?raw=true "Trackpad Settings")
This application makes it so that scroll direction for physical scroll wheels is the opposite of what is shown in settings without messing with the scroll direction of the trackpad.
The issue is described here:
https://apple.stackexchange.com/questions/116617/how-to-separate-mouse-and-trackpad-settings
Unfortunately most/all solutions no longer work reliably if at all in Catalina.
## Installation
### Using Homebrew
```
brew install --cask unnaturalscrollwheels
```
### Manual download
1. Download the latest `.dmg` from the [releases page](/../../releases), mount it, and copy the `.app` to your applications folder and open it like any other application.
2. The app requires accessibility permissions to "Control your computer". This is required to intercept scroll events, invert them and modify their deltas to disable acceleration and apply your settings.
![Accessibility Popup](/../master/Screenshots/AccessibilityPopup.png?raw=true "Accessibility Popup")
![macOS Accessibility Popup](/../master/Screenshots/macOSAccessibilityPopup.png?raw=true "macOS Accessibility Popup")
![Accessibility Settings](/../master/Screenshots/AccessibilitySettings.png?raw=true "Accessibility Settings")
That's it!
## Usage
One possible confusion may be how to modify your preferences once you've hidden the app from menu bar. To show preferences and temporarily show the menu bar icon again, simply open the application again which will display the preferences window.
", Assign "at most 3 tags" to the expected json: {"id":"10970","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"