Barrier: scroll reverse on client

Created on 22 Oct 2019  Â·  5Comments  Â·  Source: debauchee/barrier

Operating Systems

Server: Mac OS Catalina
Client: Mac OS Mojave

Barrier Version

2.3.1 release 58d8f020

Steps to reproduce bug

when using a trackpad, the scrolling direction is reverse of whatever is set in the settings on the client. so what i would expect to be up is down and what i would expect to be right is left

bug macOS

Most helpful comment

I have a Windows 10 server and macOS Catalina client. When working on the mac, I prefer natural scrolling for the trackpad and normal scrolling for the mouse. There's no built-in way on macOS to configure this, so I use BetterTouchTool to make this work. There are other apps like Scroll Reverser that do the same thing.

The problem I have is when I use barrier and try to scroll on macOS, it effectively undoes what BetterTouchTool is doing and gives me natural scrolling with my normal mouse which I don't want.

For now, disabling BetterTouchTool's mouse scroll reversing when using Synergy fixes the issue. The problem is I have to remember to reenable the mouse scroll reversing when I'm using a mouse connected directly to the mac.

I'd prefer if there was just an option in barrier to configure whether or not it reverses scroll direction on specific clients. I get my situation is a little unique, but I think this kind of option would fix a lot of these similar issues.

All 5 comments

update to this. the left/right direction is always wrong. but it seems that now up/down is correct. Not sure if I just remember wrong, or if it is inconsistent for up/down being reversed.

and a further update. now up/down is reversed. so the problem is that it isn't consistent. Not sure what the steps are to switch from being the way i expect and then reversed. It is now the next day and both macs did sleep, but couldn't say for certain that had anything to do with it

I normally use an external mouse when seated at my desk where I use two computers with Barrier, but I did some testing with the trackpad.

Server: MacBook Air 2018 running macOS Catalina 10.15.1

Client: Running macOS High Sierra 10.13.6

Barrier version: 2.3.2 with 7 additional commits from master (07a1c31, current HEAD of master) and a few commits of my own on top of that (https://github.com/ctsrc/barrier/tree/ctsrc-2019-11-08). My own commits in the version of Barrier that I run are unrelated to the issue at hand.

Normally I also use a piece of software named Scroll Reverser to allow the trackpad and the external mouse to have opposite scroll direction of one another. During testing I disabled (exited) this software, so as to match the setup that one would normally use.

macOS has configurable scroll direction. Scroll direction is configured on macOS as either natural or not. In the macOS help docs they describe the "Scroll direction: Natural" option as:

Select this option to move the contents of a window in the same direction as your fingers.

Below I test and report results for the four different possible combinations of scroll directions between server host and client host.

All tests were performed by changing the host settings for scroll direction on each of the two computers without restarting Barrier. I comment on this at the end of this comment.

This first group of tests will be referred to as "test group A".

A1) "Scroll direction: Natural" option enabled on both hosts

Server host
  • [x] Scroll direction: Natural
Client host
  • [x] Scroll direction: Natural
Content tracks finger movement?VerticallyHorizontally
ServerYesYes
ClientYesNo!
According to expectations?Yes. Same direction.No! Opposite direction.

Result: Bad. Observed horizontal scroll direction on client is opposite to that of server. In this situation we would expect both server and client to have the same scrolling directions (here: "natural") in both the horizontal and the vertical direction.

A2) "Scroll direction: Natural" option disabled on both hosts

Server host
  • [ ] Scroll direction: Natural
Client host
  • [ ] Scroll direction: Natural
Content tracks finger movement?VerticallyHorizontally
ServerNoNo
ClientNoYes!
According to expectations?Yes. Same direction.No! Opposite direction.

Result: Bad. Observed horizontal scroll direction on client is opposite to that of server. In this situation we would expect both server and client to have the same scrolling directions (here: inverse of "natural") in both the horizontal and the vertical direction.

A3) "Scroll direction: Natural" option enabled on server host, disabled on client host

Server host
  • [x] Scroll direction: Natural
Client host
  • [ ] Scroll direction: Natural
Content tracks finger movement?VerticallyHorizontally
ServerYesYes
ClientYesNo
According to expectations?Maybe Y/N. Same direction.Maybe N/Y. Opposite direction.

Comment: In this situation, where settings on server and on client are opposite of one-another, it is not obvious what should be the expected behavior – different people might have different opinions or expectations for this situation. However, we can all agree that in this situation either both horizontal and vertical direction of the client should match that of the server, or both should be opposite.

Result: Bad. In this situation, either both horizontal and vertical direction should be opposite to that of server on the client (that is: server "natural", client inverse of "natural"), or both should be the same as that of server (that is: server "natural", client "natural"), or both should be the same as that of client (that is: server inverse of "natural", client inverse of "natural"). Instead, vertical scroll direction is the same on both but horizontal is opposite.

A4) "Scroll direction: Natural" option disabled on server host, enabled on client host

Server host
  • [ ] Scroll direction: Natural
Client host
  • [x] Scroll direction: Natural
Content tracks finger movement?VerticallyHorizontally
ServerNoNo
ClientNoYes
According to expectations?Maybe Y/N. Same direction.Maybe N/Y. Opposite direction.

Comment: In this situation, as with the situation right above this one (situation A3), where settings on server and on client are opposite of one-another, it is not obvious what should be the expected behavior – different people might have different opinions or expectations for this situation. However, just as with the aforementioned situation, we can all agree that in this situation either both horizontal and vertical direction of the client should match that of the server, or both should be opposite.

Result: Bad. In this situation, as with the one above (situation A3), either both horizontal and vertical direction should be opposite to that of server on the client (that is: server inverse of "natural", client "natural"), or both should be the same as that of server (that is: server inverse of "natural", client inverse of "natural"), or both should be the same as that of client (that is: server "natural", client "natural"). Instead, vertical scroll direction is the same on both but horizontal is opposite.

Discussion of observations

In all of the four cases I observed the following:

  • Observed vertical scroll direction always matches the setting of the server host on both server and client, regardless of setting on the client host.

  • Observed horizontal scroll direction is always opposite on the client to the setting of the server host, regardless of setting on the client host.

On what is meant by observed scroll direction

When I speak of observed scroll direction here, I am speaking strictly of using the trackpad on the server host (the MacBook Air 2018 running macOS Catalina 10.15.1) to control the server and to control the client. I am not using any trackpad, mouse or other kind of pointing device to control the client directly.

This leads me to my first question, which you will find at the end of this comment.

On methodology of testing

Like I mentioned in the beginning of this comment, I changed the host settings of each of the computers during this test with Barrel running the whole time and without restarting Barrel at any point nor sleeping or restarting any of the two computers during testing. This is a weakness of my testing that I chose to accept in order to keep the amount of information in this already quite lengthy comment down to an amount that I consider reasonable.

Now that I have commented extensively on everything surrounding my initial testing, it is possible to do more tests with conditions like stopping Barrel between each change of host settings and starting Barrel again after making those changes, and sleeping each of the computers between changes. The results for each of those groups of tests (each consisting of the four possible configurations of scroll directions along with whatever other kind of things like those things that I mentioned just now) can then be posted in separate comments following the format of the initial tests I performed.

On difference in observed behavior resulting from "interference" from other software

I mentioned at the beginning of this comment that normally I use a piece of software named Scroll Reverser that makes it possible to customize scroll behavior beyond the options included in macOS itself.

This leads me to another question, also written at the end of this comment.

Questions

@technovangelist First question. When you speak of up/down becoming reversed, are you using the trackpad of the server the whole time or are you switching between using the trackpad of the server and another pointing device connected to either the server or the client?

@technovangelist Secondary to the question above, are you the only person using these two computers or are you sharing them with anyone else that might change the settings for the scroll direction because they have an opposite preference?

@technovangelist Furthermore to the above, are you always using the computer that is running Barrel server alongside the one that is running Barrel client when you use the computer running Barrel client? Or do you sometimes use the computer running as Barrel client alone without the computer running as Barrel server? (Note that this question is similar to, but different from, the first question.)

@technovangelist Another question. About other pieces of software, like Scroll Reverser that I mentioned, do you use any software like that on either the client or the server?

Please respond to these questions individually and quoting each of the questions that you are responding to, as doing so makes it easy to see which of these several questions you are responding to at each time.

I intend to delay posting any further results from testing until these questions are answered, so that I don't drown out these questions with more comments. I hope that you agree that this is the most reasonable in order to keep the comments tidy.

Hi
2 macs - both on Catalina
v2.3.2

Same issue on the horizontal scroll, and because it might be linked, I wanted to highlight that scroll acceleration is off. Normal on server, but too much on client, which I assume is because the device input is taken too high in the OS stack (after preferences, after acceleration, etc.) therefore adding acceleration twice.

So maybe so the solution would be to take the device input one level down (closer to the USB input). Not sure it's possible as it's classic issue with virtual KVMs (very similar experience on Synergy back in the days), but IIRC, ShareMouse did a better job.

NOTE: Good work to all devs working on this - I'm new to Barrier but really pleased!!!

I have a Windows 10 server and macOS Catalina client. When working on the mac, I prefer natural scrolling for the trackpad and normal scrolling for the mouse. There's no built-in way on macOS to configure this, so I use BetterTouchTool to make this work. There are other apps like Scroll Reverser that do the same thing.

The problem I have is when I use barrier and try to scroll on macOS, it effectively undoes what BetterTouchTool is doing and gives me natural scrolling with my normal mouse which I don't want.

For now, disabling BetterTouchTool's mouse scroll reversing when using Synergy fixes the issue. The problem is I have to remember to reenable the mouse scroll reversing when I'm using a mouse connected directly to the mac.

I'd prefer if there was just an option in barrier to configure whether or not it reverses scroll direction on specific clients. I get my situation is a little unique, but I think this kind of option would fix a lot of these similar issues.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

the-reverend picture the-reverend  Â·  4Comments

HereInPlainSight picture HereInPlainSight  Â·  4Comments

shymega picture shymega  Â·  4Comments

w0www picture w0www  Â·  4Comments

agilbertson1977 picture agilbertson1977  Â·  4Comments