GithubHelp home page GithubHelp logo

discrete-scroll's Introduction

DiscreteScroll

Downloads

This small utility fixes macOS's unnecessary scroll wheel acceleration. It runs in the background, allowing you to scroll a constant number of lines with each notch of the wheel.

Supported versions

As of May 2024, this application works on macOS versions 10.9–14.0.

Installation

You may download the binary here. DiscreteScroll requires access to accessibility features. Upon startup, if it does not have access, it will prompt you and wait. You do not need to restart the application after you grant it access to accessibility features.

Caution

You should not revoke accessibility access for DiscreteScroll while it is running. Otherwise, your mouse might become unresponsive, requiring a reboot to fix.

If you want the application to run automatically when you log in, do the following:

  1. On macOS 13.0 and later, go to System Settings > General > Login Items; otherwise, go to System Preferences > Users & Groups > Login Items.
  2. Add DiscreteScroll to the list.

If you want to quit the application, either run killall DiscreteScroll or do the following:

  1. Launch Activity Monitor.
  2. Search for DiscreteScroll and select it.
  3. Click the stop button in the upper-left corner and choose Quit.

Configuration

The default behavior is to scroll 3 lines with each notch of the wheel. If you want to change this, run the following command, replacing LINES with the number of lines to scroll with each notch. This number may even be negative, which inverts scrolling direction.

defaults write com.emreyolcu.DiscreteScroll lines -int LINES

Warning

If you set lines to some value other than an integer, then the default value of 3 is used as a fallback.

You should restart the application for the setting to take effect.

Uninstallation

To uninstall DiscreteScroll, quit the application, move it to trash, and remove it from the lists for accessibility access and login items. You can remove any stored preferences by running the following:

defaults delete com.emreyolcu.DiscreteScroll

Potential problems

Recent versions of macOS have made it difficult to run unsigned binaries.

If you experience issues launching the application, try the following:

  • Remove the quarantine attribute by running the command xattr -dr com.apple.quarantine /path/to/DiscreteScroll.app, where the path points to the application bundle.
  • Disable Gatekeeper by running the command spctl --add /path/to/DiscreteScroll.app, where the path points to the application bundle.

If on startup the application asks for accessibility permissions even though you have previously granted it access, try the following:

  1. On macOS 13.0 and later, go to System Settings > Privacy & Security > Accessibility; otherwise, go to System Preferences > Security & Privacy > Privacy > Accessibility.
  2. Remove DiscreteScroll from the list and add it again.

History

v1.2.1 (2024-06-05)

  • Fix: Release event tap and run loop source after adding source.

v1.2.0 (2024-06-02)

  • Remove accessibility observer once granted access.

v1.1.0 (2024-05-31)

  • Observe changes in accessibility access continuously.

v1.0.1 (2024-05-28)

  • Fix: Fall back to defaults if user preference is set to incorrect type.

v1.0.0 (2024-05-26)

  • Handle errors and check for accessibility access.
  • Allow configuring the number of lines scrolled per notch.

v0.1.1 (2016-10-29)

  • Fix: Use point delta instead of line delta.

v0.1.0 (2016-10-25)

  • Initial release.

discrete-scroll's People

Contributors

core-code avatar emreyolcu 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

discrete-scroll's Issues

Donations

Hi,
I use discrete-scroll since v0.1.1u and it's awesome utility that helps me to work with comfort on my MBP using regular mouse.

As I'm not C software engineer (but the Go/Golang), I'd like to contribute to this project financially.
Hope I'm not the only one who thinks the same.

Add customisation point for number of lines scrolled

Firstly, thank you for this amazingly useful utility!

I find myself wanting to customise the number of lines that are scrolled at once (3 being a little too small for most applications for me). I see it's currently #defined at the top of the file; maybe it could be (optionally) read from the command line? [Or even a configuration file, but that might be overkill]

Still working on Big Sur as of May 2021

Feel free to close this but actually the description or readme should atleast be updated to state that it still works as of late, with the age of the last commit I thought this might be out of commission.

Thankfully looking into the issues someone did say it was still working for them in 2019/2020

Segmentation fault

This tool looks promising!
When running my self-compiled version I get a segmentation fault. When running from XCode, I get BAD_ACCESS most of the times. It seems that eventTap is 0x0. Any idea how?

Segfault in Mojave

Huge fan of Discrete Scroll and was working perfectly until I updated to Mojave.

See the following error if I run from CLI

[1] 2052 segmentation fault /Users/zach/Documents/DiscreteScroll.app/Contents/MacOS/DiscreteScroll

Add support for VM's and RDP

I use parallels for VM's and Parsec for RDP and both of them seem to be tripling the scroll speed. My guess is that discrete scroll is telling the vm/remote pc to scroll 3 times and the host os is set to scroll 3 lines per scroll. Would it be possible to detect these types of applications and automatically switch the scroll speed to 1 line?

Thanks!

Crashing with segfault

Hi, I've updated to the latest version and it seems to crash now (I updated because the other version seemed to stop working).
It crashes with a segfault, when I run it in XCode manually, I get the following:
image

macOS Ventura 13.5.2 (22G91)
Intel chip (x64).

Just wanted to say thanks

Hi!

This is an amazing tool. I switched from Windows to MacOS Catalina and this scrolling behavior was really bugging me. I knew something was off, felt weird while scrolling and couldn't adapt it for 2 months.

Now I can safely use my MacBook which I really like using, so I wanted to show you my gratitude.

P.S.: We share the same names.:)

Thank you a lot,
Emre.

Scroll speed

Please, could you add an option to set a scroll speed (number or rows to scroll per one wheel "movement")?

Install instructions: SysPref - Login Time

Hi,

just got my first Mac running Ventura and wasn't able to follow your installation instructions as I couldn't find the 'Login items' entry. Seems on newer Macs this has changed to "System Preferences - General - Login Time"

best regards

Stefan

ARM64 support

I'm pretty sure that the project just needs to be rebuilt with the latest Xcode to support ARM64 natively.

App crashes with SEGFAULT when starting on M1 or M2 using macOS 14.2.1

This is the output from the macOS log console on an M1. I hope it is helpful.

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               DiscreteScroll [3806]
Path:                  /Applications/DiscreteScroll.app/Contents/MacOS/DiscreteScroll
Identifier:            Emre.DiscreteScroll
Version:               0.1.1 (0.1.1)
Code Type:             ARM-64 (Native)
Parent Process:        launchd [1]
User ID:               501

Date/Time:             2023-12-30 18:45:40.5413 +0100
OS Version:            macOS 14.2.1 (23C71)
Report Version:        12
Anonymous UUID:        8F05FF20-1E13-C4A7-95C1-DE4159690C00

Sleep/Wake UUID:       F5CDF456-E5A8-4CAE-829A-1B9086FCF3B4

Time Awake Since Boot: 3200 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000008
Exception Codes:       0x0000000000000001, 0x0000000000000008

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [3806]

VM Region Info: 0x8 is not in any region.  Bytes before following region: 4362649592
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      __TEXT                      10408c000-104090000    [   16K] r-x/r-x SM=COW  ...iscreteScroll

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   CoreFoundation                	       0x18ccdd554 __CFCheckCFInfoPACSignature + 4
1   CoreFoundation                	       0x18cbe27b0 CFMachPortCreateRunLoopSource + 60
2   DiscreteScroll                	       0x10408fe7c 0x10408c000 + 15996
3   dyld                          	       0x18c7ad0e0 start + 2360

Thread 1:
0   libsystem_pthread.dylib       	       0x18cb28e28 start_wqthread + 0

Thread 2:
0   libsystem_pthread.dylib       	       0x18cb28e28 start_wqthread + 0


Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000000   x1: 0x0000000000000000   x2: 0x0000000000000000   x3: 0x00001e030000100b
    x4: 0x0000748400000000   x5: 0x00001e0300000001   x6: 0x0000000000000034   x7: 0x0000000000000000
    x8: 0x0000000000000008   x9: 0xdd4f1d2e31e00096  x10: 0x00023c0dfc002486  x11: 0x0000000000000000
   x12: 0x0000000000001e03  x13: 0x0200000110000130  x14: 0x0000020000001000  x15: 0x0200000010000100
   x16: 0x000000018cbe2774  x17: 0x00000001e37b1308  x18: 0x0000000000000000  x19: 0x0000000000000000
   x20: 0x0000000000000000  x21: 0x0000000000000000  x22: 0x00000001044a5910  x23: 0x000000016bd739a0
   x24: 0x000000016bd739e0  x25: 0x000000018c82c5eb  x26: 0x0000000000000000  x27: 0x0000000000000000
   x28: 0x0000000000000000   fp: 0x000000016bd738e0   lr: 0x000000018cbe27b0
    sp: 0x000000016bd73870   pc: 0x000000018ccdd554 cpsr: 0x60001000
   far: 0x0000000000000008  esr: 0x92000006 (Data Abort) byte read Translation fault

Binary Images:
       0x10408c000 -        0x10408ffff Emre.DiscreteScroll (0.1.1) <2b1668bc-0d52-32a5-8397-c8a7f3d64139> /Applications/DiscreteScroll.app/Contents/MacOS/DiscreteScroll
       0x18cb8e000 -        0x18d065fff com.apple.CoreFoundation (6.9) <47e4ec09-8f6e-30a8-99d0-34024d4f8122> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
       0x18c7a7000 -        0x18c83b347 dyld (*) <324e4ad9-e01f-3183-b09f-3e20b326643a> /usr/lib/dyld
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
       0x18cb27000 -        0x18cb33ff3 libsystem_pthread.dylib (*) <a7d94c96-7b1f-3229-9bea-048d037c3292> /usr/lib/system/libsystem_pthread.dylib

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=1.1G resident=0K(0%) swapped_out_or_unallocated=1.1G(100%)
Writable regions: Total=549.7M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=549.7M(100%)

                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Activity Tracing                   256K        1 
Kernel Alloc Once                   32K        1 
MALLOC                           540.2M       16 
MALLOC guard page                   96K        6 
STACK GUARD                       56.0M        3 
Stack                             9264K        3 
__AUTH                             538K      113 
__AUTH_CONST                      9494K      242 
__DATA                            2624K      227 
__DATA_CONST                      10.3M      243 
__DATA_DIRTY                       453K       86 
__FONT_DATA                          4K        1 
__LINKEDIT                       891.4M        2 
__OBJC_RO                         71.1M        1 
__OBJC_RW                         2168K        1 
__TEXT                           185.9M      252 
dyld private memory                272K        2 
shared memory                       32K        2 
===========                     =======  ======= 
TOTAL                              1.7G     1202 



-----------
Full Report
-----------

{"app_name":"DiscreteScroll","timestamp":"2023-12-30 18:45:40.00 +0100","app_version":"0.1.1","slice_uuid":"2b1668bc-0d52-32a5-8397-c8a7f3d64139","build_version":"0.1.1","platform":1,"bundleID":"Emre.DiscreteScroll","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 14.2.1 (23C71)","roots_installed":0,"name":"DiscreteScroll","incident_id":"3CBAEB74-1F94-46C1-8127-586022736FE4"}
{
  "uptime" : 3200,
  "procRole" : "Default",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "MacBookAir10,1",
  "coalitionID" : 1344,
  "osVersion" : {
    "train" : "macOS 14.2.1",
    "build" : "23C71",
    "releaseType" : "User"
  },
  "captureTime" : "2023-12-30 18:45:40.5413 +0100",
  "codeSigningMonitor" : 1,
  "incident" : "3CBAEB74-1F94-46C1-8127-586022736FE4",
  "pid" : 3806,
  "translated" : false,
  "cpuType" : "ARM-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2023-12-30 18:45:40.4971 +0100",
  "procStartAbsTime" : 78572658929,
  "procExitAbsTime" : 78573705572,
  "procName" : "DiscreteScroll",
  "procPath" : "\/Applications\/DiscreteScroll.app\/Contents\/MacOS\/DiscreteScroll",
  "bundleInfo" : {"CFBundleShortVersionString":"0.1.1","CFBundleVersion":"0.1.1","CFBundleIdentifier":"Emre.DiscreteScroll"},
  "storeInfo" : {"deviceIdentifierForVendor":"08B7C133-0122-52BB-ABD8-EF3604F725DE","thirdParty":true},
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "Emre.DiscreteScroll",
  "crashReporterKey" : "8F05FF20-1E13-C4A7-95C1-DE4159690C00",
  "codeSigningID" : "Emre.DiscreteScroll",
  "codeSigningTeamID" : "",
  "codeSigningFlags" : 570425857,
  "codeSigningValidationCategory" : 10,
  "codeSigningTrustLevel" : 4294967295,
  "instructionByteStream" : {"beforePC":"\/w9f1kj4BzapOi2wKSVB+SkBQPkoAQiKHwEQ6+AHnxr3\/\/8XCCAAkQ==","atPC":"Cf3fyAj938gIPXiSCOlpkooFgVIIMcqaCDDImihBSMofXWjyQAAAVA=="},
  "sleepWakeUUID" : "F5CDF456-E5A8-4CAE-829A-1B9086FCF3B4",
  "sip" : "enabled",
  "vmRegionInfo" : "0x8 is not in any region.  Bytes before following region: 4362649592\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  \n      __TEXT                      10408c000-104090000    [   16K] r-x\/r-x SM=COW  ...iscreteScroll",
  "exception" : {"codes":"0x0000000000000001, 0x0000000000000008","rawCodes":[1,8],"type":"EXC_BAD_ACCESS","signal":"SIGSEGV","subtype":"KERN_INVALID_ADDRESS at 0x0000000000000008"},
  "termination" : {"flags":0,"code":11,"namespace":"SIGNAL","indicator":"Segmentation fault: 11","byProc":"exc handler","byPid":3806},
  "vmregioninfo" : "0x8 is not in any region.  Bytes before following region: 4362649592\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  \n      __TEXT                      10408c000-104090000    [   16K] r-x\/r-x SM=COW  ...iscreteScroll",
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":54955,"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":32998233739275},{"value":128110284505088},{"value":32998233735169},{"value":52},{"value":0},{"value":8},{"value":15946996889784680598},{"value":628980713530502},{"value":0},{"value":7683},{"value":144115192639258928},{"value":2199023259648},{"value":144115188344291584},{"value":6656239476,"symbolLocation":0,"symbol":"CFMachPortCreateRunLoopSource"},{"value":8111461128,"symbolLocation":0,"symbol":"OBJC_CLASS_$_NSMachPort"},{"value":0},{"value":0},{"value":0},{"value":0},{"value":4366948624},{"value":6104234400},{"value":6104234464},{"value":6652347883},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6656239536},"cpsr":{"value":1610616832},"fp":{"value":6104234208},"sp":{"value":6104234096},"esr":{"value":2449473542,"description":"(Data Abort) byte read Translation fault"},"pc":{"value":6657267028,"matchesCrashFrame":1},"far":{"value":8}},"queue":"com.apple.main-thread","frames":[{"imageOffset":1373524,"symbol":"__CFCheckCFInfoPACSignature","symbolLocation":4,"imageIndex":1},{"imageOffset":346032,"symbol":"CFMachPortCreateRunLoopSource","symbolLocation":60,"imageIndex":1},{"imageOffset":15996,"imageIndex":0},{"imageOffset":24800,"symbol":"start","symbolLocation":2360,"imageIndex":2}]},{"id":54971,"frames":[{"imageOffset":7720,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":4}],"threadState":{"x":[{"value":6104788992},{"value":3331},{"value":6104252416},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6104788992},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6655479336},"far":{"value":0}}},{"id":54972,"frames":[{"imageOffset":7720,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":4}],"threadState":{"x":[{"value":6105362432},{"value":5123},{"value":6104825856},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6105362432},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6655479336},"far":{"value":0}}}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4362649600,
    "CFBundleShortVersionString" : "0.1.1",
    "CFBundleIdentifier" : "Emre.DiscreteScroll",
    "size" : 16384,
    "uuid" : "2b1668bc-0d52-32a5-8397-c8a7f3d64139",
    "path" : "\/Applications\/DiscreteScroll.app\/Contents\/MacOS\/DiscreteScroll",
    "name" : "DiscreteScroll",
    "CFBundleVersion" : "0.1.1"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6655893504,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.CoreFoundation",
    "size" : 5079040,
    "uuid" : "47e4ec09-8f6e-30a8-99d0-34024d4f8122",
    "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation",
    "name" : "CoreFoundation",
    "CFBundleVersion" : "2202"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6651801600,
    "size" : 607048,
    "uuid" : "324e4ad9-e01f-3183-b09f-3e20b326643a",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6655471616,
    "size" : 53236,
    "uuid" : "a7d94c96-7b1f-3229-9bea-048d037c3292",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  }
],
  "sharedCache" : {
  "base" : 6651052032,
  "size" : 4061216768,
  "uuid" : "f9ddd844-7f3f-34bd-be29-f0c72d5e5449"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=1.1G resident=0K(0%) swapped_out_or_unallocated=1.1G(100%)\nWritable regions: Total=549.7M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=549.7M(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nKernel Alloc Once                   32K        1 \nMALLOC                           540.2M       16 \nMALLOC guard page                   96K        6 \nSTACK GUARD                       56.0M        3 \nStack                             9264K        3 \n__AUTH                             538K      113 \n__AUTH_CONST                      9494K      242 \n__DATA                            2624K      227 \n__DATA_CONST                      10.3M      243 \n__DATA_DIRTY                       453K       86 \n__FONT_DATA                          4K        1 \n__LINKEDIT                       891.4M        2 \n__OBJC_RO                         71.1M        1 \n__OBJC_RW                         2168K        1 \n__TEXT                           185.9M      252 \ndyld private memory                272K        2 \nshared memory                       32K        2 \n===========                     =======  ======= \nTOTAL                              1.7G     1202 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "queue" : "com.apple.main-thread"
  }
},
  "logWritingSignature" : "ed38667264e0ebfa0a801fa21b944357381146e2",
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "60da5e84ab0ca017dace9abf",
      "factorPackIds" : {

      },
      "deploymentId" : 240000008
    },
    {
      "rolloutId" : "5fb4245a1bbfe8005e33a1e1",
      "factorPackIds" : {

      },
      "deploymentId" : 240000021
    }
  ],
  "experiments" : [

  ]
}
}

Recompiling with a different line count.

Firstly, sorry to submit an issue, but I wasn't sure how else to contact you (I don't have enough rep on AskDifferent to comment).

I'm not overly familiar with macOS and don't have Xcode installed. Is there a way to recompile the app with 1 or 2 lines (or ~1.5; are decimals possible?) of scrolling? My mouse has a particularly fast scroll wheel, and 3 is a bit quick. If not, could you upload a binary with slower scrolling or some configuration mechanism.

Thank-you for your work, mind! As quick as it is, this scrolling is heaps better than the OS's.

Requesting more scrolling options.

Not an issue per say, but may i request 3 releases for this tool? One for 1 line, one for 2 lines and one for 3 lines per scrolling tick so we can choose at what speed we want as default :)

How to build?

How to build this project from command line? I'd rather not download and execute a binary :P should perhaps be added to the readme?

Issues on scroll down

I'm trying to fix my mouse issues, so I added an NSLog to see the delta results, and I noticed that even scrolling down and only down sometimes my mouse sends a positive value that adds some buggy sense in the scroll bar. As the logs show, you can see lots of -3 which is the expected behavior, but there are some unexpected 3s.

2018-04-17 10:45:09.262230-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:09.286121-0300 DiscreteScroll[2034:281288] 3
2018-04-17 10:45:09.356263-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:09.372185-0300 DiscreteScroll[2034:281288] 3
2018-04-17 10:45:10.120573-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:10.173894-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:10.300109-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:10.322228-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:10.370048-0300 DiscreteScroll[2034:281288] 3
2018-04-17 10:45:10.392035-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:10.814171-0300 DiscreteScroll[2034:281288] 3
2018-04-17 10:45:10.862065-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:10.891991-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:10.924147-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:10.946057-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:10.996154-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:11.010058-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:11.540048-0300 DiscreteScroll[2034:281288] 3
2018-04-17 10:45:11.610238-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:11.642110-0300 DiscreteScroll[2034:281288] 3
2018-04-17 10:45:11.648116-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:11.695997-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:11.718044-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:11.774165-0300 DiscreteScroll[2034:281288] -3
2018-04-17 10:45:11.820119-0300 DiscreteScroll[2034:281288] -3

The expected behavior is to fix those 3s that messes the scrolling, any suggestion? thanks for the awesome little app :)

Single scroll ticks don't work

Hi,

I ran the .app binary that you posted to AskDifferent, and it ran fine, making the scroll linear and discrete, except for the first few scroll ticks. In particular, I would like my scroll wheel to register when I scroll one tick and then stop, as this is necessary for several programs, especially games.

I'm not getting any errors when running from Terminal. I suggest maybe that this is caused by that a single lone scroll tick doesn't register as any distance using the unmodified scrolling behavior.

This is the best app in the world

I've been hating my mac experience for three years, and I learned about this program today.

It healed me. Now my life is complete, and mac is bearable to use.

Thank you.

The app does nothing

Downloaded it, tried to run it but double clicking on the app does nothing. There are no errors, no warnings, just silence.

This is a tiny but great app

First thanks for this, I love this application. Scrolling experience with my mouse was so bad before using this app.

I was wondering how much effort it is to add a simple bar icon on top with the option to keep the application running always. I'm a programmer but I'm not familiar with Objective-C.

App is no longer working on launch

I tried restarting my computer and deleting and reinstalling the app, but it isn't functioning for me anymore. Still experiencing the scroll acceleration :/ Not sure if anyone else is having this issue.

[Feature] Fix macOS's unnecessary mouse acceleration

Any chance we can get a second app that is as simple as this one that fixes mac's crazy mouse acceleration curve? The combo of these two things would fix mouse support in macOS. Coming from Windows and Linux, it feels like the mac dev team created the best trackpad by not spending any time on making modern mice work with their OS.

Thanks for this simple fix!

Any chance this could get signed?

Any possibility of getting a version of this binary signed so that I can bypass "can't be opened because Apple cannot check it for malicious software"? My support guy is looking into whether not being able to bypass this is part of any of the security products we run, but I can't just 'Open Anyway'.

I'm on MacOS 11.5.2

Thanks!

Can't run binary on Big Sur—I get a "The application 'DiscreteScroll.app' can't be opened: 11" message

Steps to reproduce:

  • Navigate to discrete-scroll GitHub repo
  • Download the binary
  • Unzip the file
  • Drag "DiscreteScroll.app" to the /Applications folder
  • Double-click / Cmd + O the app
  • Get a "This app was downloaded from the internet... etc." pop-up, click "OK"

Expected outcome:

  • App runs

Actual outcome:

  • I get a "The application 'DiscreteScroll.app' can't be opened: 11" dialog window

Note: I did get a slightly different pop-up window the very first time I tried running the binary. It contained a button taking me to my System Preferences, but there was no "Allow" or "Run anyway" section under the "Privacy > General" tab where I expected it to be, so I just closed Sys Prefs and tried again. But now I can't seem to get that window anymore.

Also, the app does not appear in my Activity Monitor list.

1 line and 2 lines versions don't work

I don't know why but the one line and the two line versions don't work, they don't even show in the activity monitor. No problems for the three lines version, but i'd like to try the other ones, three lines are too many for my mouse

Application is not working after update

I have used v0.1.1 almost year on macbook air 2020 m1 and it have works fine all this time.

I have update application via brew and now it's not working. I have delete/install it several times, but without result.

Also i try to install previous version via
brew install [email protected] - but it is only one version there.

I have try:

  • install application via brew and run - it's not starting;
  • install application v0.1.1u manually from github and run - it's not starting;
  • install application v0.1.1 manually from github and run - it's working!;

So please:

  • fix the application release;
  • add version support to brew;

Macos Ventura 13.0.1

Adaptive line scroll

Hi, first of all I'd like to thank you for creating and sharing this app 😊 This "feature" in sierra has been driving me crazy for the last two months.

I was wondering if you could add an option to only scroll one line when the scroll wheel ticks once, but scroll multiple lines if the scroll wheel ticks multiple times in for example a 0.2 second time window.

I'd like this feature because it would help when viewing a pdf with Quick Look. If the scroll is set to three lines then on a scroll wheel tick the document would scroll down 3 pages, when in reality I only want to scroll down one page. But if I use the release where you set the scroll to 1 line, then thats a little bit inconvenient when scrolling in any other app on a daily basis.

Thank you for your help in advance!
Regards,
Kmikiy

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.