diff --git a/wlx-common/src/config.rs b/wlx-common/src/config.rs index db8cf2f..8cee4af 100644 --- a/wlx-common/src/config.rs +++ b/wlx-common/src/config.rs @@ -222,6 +222,9 @@ pub struct GeneralConfig { #[serde(default = "def_false")] pub focus_follows_mouse_mode: bool, + #[serde(default = "def_false")] + pub left_handed_mouse: bool, + #[serde(default = "def_false")] pub block_game_input: bool, diff --git a/wlx-overlay-s/README.md b/wlx-overlay-s/README.md index 971142f..f049491 100644 --- a/wlx-overlay-s/README.md +++ b/wlx-overlay-s/README.md @@ -41,6 +41,11 @@ For users specifically running **SteamVR via Steam Flatpak**, follow these steps 1. Start SteamVR. 1. `flatpak run --command='/path/to/squashfs-root/AppRun' com.valvesoftware.Steam` +### Install via Homebrew + +1. Add AtomicXR tap `brew tap matrixfurry.com/atomicxr https://tangled.sh/@matrixfurry.com/homebrew-atomicxr` +2. Install WlxOverlay-S: `brew install wlx-overlay-s` + AUR package is [wlx-overlay-s-git](https://aur.archlinux.org/packages/wlx-overlay-s-git). You may also want to [build from source](https://github.com/galister/wlx-overlay-s/wiki/Building-from-Source). @@ -145,10 +150,6 @@ Check [here](https://github.com/galister/wlx-overlay-s/wiki/Troubleshooting) for ### Mouse is not where it should be -Hyprland users: Hyprland v0.41.0 changed their absolute input implementation to one that does not respect existing absolute input standards. Make your voice heard: [Hyprland#6023](https://github.com/hyprwm/Hyprland/issues/6023)・[Hyprland#6889](https://github.com/hyprwm/Hyprland/issues/6889) - -Niri users: use on Niri 0.1.7 or later. - X11 users might be dealing with a [Phantom Monitor](https://wiki.archlinux.org/title/Xrandr#Disabling_phantom_monitor). Other desktops: The screens may have been selected in the wrong order, see [First Start](#first-start). diff --git a/wlx-overlay-s/src/overlays/screen/backend.rs b/wlx-overlay-s/src/overlays/screen/backend.rs index b0aaa0a..aaa7c22 100644 --- a/wlx-overlay-s/src/overlays/screen/backend.rs +++ b/wlx-overlay-s/src/overlays/screen/backend.rs @@ -222,12 +222,21 @@ impl OverlayBackend for ScreenBackend { } } fn on_pointer(&mut self, app: &mut AppState, hit: &PointerHit, pressed: bool) { - let btn = match hit.mode { + let mut btn = match hit.mode { PointerMode::Right => MOUSE_RIGHT, PointerMode::Middle => MOUSE_MIDDLE, _ => MOUSE_LEFT, }; + // Swap left and right buttons if left-handed mode is enabled + if app.session.config.left_handed_mouse { + btn = match btn { + MOUSE_LEFT => MOUSE_RIGHT, + MOUSE_RIGHT => MOUSE_LEFT, + other => other, + }; + }; + if pressed { set_next_move(u64::from(app.session.config.click_freeze_time_ms)); }