mirror of
https://github.com/debauchee/barrier.git
synced 2026-05-15 14:16:02 -06:00
[PR #2121] Add coordinate-based screen switching and grave modifier support #1843
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#1843
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?
📋 Pull Request Information
Original PR: https://github.com/debauchee/barrier/pull/2121
Author: @danielsuss
Created: 6/13/2025
Status: 🔄 Open
Base:
master← Head:master📝 Commits (5)
f0daa31Initial Implementation for coordinate switchingf7ad724updated makelists for modern compilation314f107Add grave modifier support for hotkeysb8f917dEnhance grave modifier key support and fix missing key definitions779edb1Merge pull request #1 from danielsuss/switch-screen-with-coordinates📊 Changes
24 files changed (+683 additions, -14 deletions)
View changed files
➕
.claude/settings.local.json(+12 -0)📝
CMakeLists.txt(+1 -1)➕
COMPILATION_GUIDE.md(+265 -0)➕
GRAVE_MODIFIER_SETUP.md(+48 -0)📝
cmake/Version.cmake(+1 -1)📝
src/gui/CMakeLists.txt(+1 -1)📝
src/gui/src/Action.cpp(+16 -1)📝
src/gui/src/Action.h(+12 -0)📝
src/gui/src/ActionDialog.cpp(+22 -0)📝
src/gui/src/ActionDialogBase.ui(+170 -0)📝
src/gui/src/KeySequence.cpp(+16 -0)📝
src/gui/src/KeySequence.h(+3 -0)📝
src/lib/barrier/key_types.cpp(+1 -0)📝
src/lib/barrier/key_types.h(+4 -1)📝
src/lib/base/String.h(+1 -0)📝
src/lib/net/FingerprintData.h(+1 -0)📝
src/lib/platform/XWindowsKeyState.cpp(+11 -0)📝
src/lib/platform/XWindowsScreen.cpp(+1 -1)📝
src/lib/platform/XWindowsUtil.cpp(+3 -0)📝
src/lib/server/Config.cpp(+15 -3)...and 4 more files
📄 Description
Summary
This PR adds two major features to Barrier:
🎯 Coordinate-Based Screen Switching
switchToScreenaction to accept optional coordinates:switchToScreen(screen,x,y)switchToScreen(screen)syntax still works⌨️ Grave Modifier Support
keystroke(Grave+1) = switchToScreen(screen1,960,540)🔧 Compilation Improvements
#include <cstdint>headers for C++17+ compilersKey Implementation Details
Coordinate Switching:
SwitchToScreenActionconstructor accepting x,y coordinatesswitchScreen()integration for precise positioningGrave Modifier:
KeyModifierGraveconstant (0x0080) and bit (7)GraveModifierconstantBackward Compatibility
✅ All existing configurations continue to work unchanged
✅ No breaking changes to API or config format
✅ Default behavior preserved when coordinates not specified
Test Results
Documentation
GRAVE_MODIFIER_SETUP.mdwith setup instructionsCOMPILATION_GUIDE.mdwith detailed build stepsThis enhancement significantly improves Barrier's usability for complex multi-monitor setups and provides additional hotkey modifier options.
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.