mirror of
https://github.com/debauchee/barrier.git
synced 2026-05-15 14:16:02 -06:00
[GH-ISSUE #1112] Multi-display Configuration: facilitate entry point arrangement to be other monitors #889
Labels
No labels
HiDPI
bounty
bsd/freebsd
bsd/openbsd
bug
bug
build-infra
cantfix
critical
doc
duplicate
enhancement
fix-available
from git
from release
good first issue
help wanted
installer/package
invalid
linux
macOS
meta
needs testing
pull-request
query
question
regression
regression
v2.4.0
windows
wontfix
work-in-progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/barrier#889
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ylluminate on GitHub (Mar 28, 2021).
Original GitHub issue: https://github.com/debauchee/barrier/issues/1112
I run multiple workstations with multiple displays. When I go into a client from the server workstation I have an issue where I need to flip the display arrangement. A monitor that would normally be considered is actually mapped to be on top and the monitor on top is mapped to be on bottom. We need a way to map monitors for client systems so that they can have an entry point on other than what is perceived by the system to be the bottom or aligned monitor.
ShareMouse does a very good job of providing a UI/UX for this, but of course with their not supporting Linux they're a non-starter option.
@Aterfax commented on GitHub (Jan 20, 2022):
Also have this issue. I can only mouse off my lowest monitor to the screen/laptop on my desk.
I'd prefer to be able to move the mouse off the bottom of any of the 3 lower monitors!
i.e. I can only mouse off monitor 3, where I want to be able to mouse down off 1, 2 or 3.
@TomSomerville commented on GitHub (Feb 15, 2022):
I believe this is the same issue I am having. My set up currently looks like the following:
Laptop A == Server
Laptop B == Client
When I move my mouse off the left edge of Laptop A screen, nothing occurs, and the mouse does not move to Laptop B as expect.
When I move my mouse off the left edge of Monitor 1, the mouse moves to Laptop B.
It would be nice to have some type of multi monitor support that lets us select which edge of which monitor goes to which client, or lets us more fine tune how the monitors between all clients are laid out.
@vjpr commented on GitHub (Mar 22, 2022):
Here is the detection code:
653e4badeb/src/lib/server/Server.cpp (L1779-L1804)My setup looks like so:
After hitting a breakpoint when my mouse is at the top edge of my middle screen, these are the values of the variables related to the code that determines whether to move the cursor to another screen:
As you can see,
y < ay + zoneSizeis false.-1440 < -1763 = false.The function
getShape, gets the maximum bounds of all your screens combined relative to the primary screen.Here is where the bounds are read from:
653e4badeb/src/lib/platform/OSXScreen.mm (L1549-L1554)So
-1763refers to the top edge of the highest screen.So only exceeding this value will trigger a change in screen.
To fix this, we need to get the monitor the cursor is on, check for neighboring monitors, and if there is no neighbouring monitor, trigger a direction change.
Todo
There is a
barrier::Screenwhich accepts aPlatformScreenimpl such asOSXScreen.Each
PlatformScreenimpl should expose a method to check whether the cursor position is at an edge with no neighboring displays.One consideration though is sometimes you may not want an edge with no neighboring displays to trigger a switch. Ideally you should compare if the destination screen is adjacent to the source screen.
@vjpr commented on GitHub (Mar 31, 2022):
I have done a rough implementation for moving up and down here (https://github.com/debauchee/barrier/pull/1626).
@davidkennedydev commented on GitHub (Oct 21, 2022):
https://github.com/debauchee/barrier/discussions/1451