{"id":47530386,"url":"https://github.com/wayvr-org/wayvr","last_synced_at":"2026-04-11T14:01:22.840Z","repository":{"id":206418372,"uuid":"716598943","full_name":"wayvr-org/wayvr","owner":"wayvr-org","description":"Your way to enjoy VR on Linux. Run apps inside VR \u0026 access your Wayland/X11 screens from Monado/WiVRn/SteamVR.","archived":false,"fork":false,"pushed_at":"2026-04-10T05:47:39.000Z","size":11925,"stargazers_count":953,"open_issues_count":61,"forks_count":92,"subscribers_count":11,"default_branch":"main","last_synced_at":"2026-04-10T07:41:30.166Z","etag":null,"topics":["linux","openvr","openvr-overlay","openxr","openxr-overlay","steamvr","steamvr-overlay","vr-overlay","wayland","x11"],"latest_commit_sha":null,"homepage":"https://wayvr.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wayvr-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"wayvr-org"}},"created_at":"2023-11-09T13:28:33.000Z","updated_at":"2026-04-10T05:47:42.000Z","dependencies_parsed_at":"2025-12-07T11:06:14.648Z","dependency_job_id":null,"html_url":"https://github.com/wayvr-org/wayvr","commit_stats":null,"previous_names":["galister/wlx-overlay-s","wlx-team/wayvr","wayvr-org/wayvr"],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/wayvr-org/wayvr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayvr-org%2Fwayvr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayvr-org%2Fwayvr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayvr-org%2Fwayvr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayvr-org%2Fwayvr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wayvr-org","download_url":"https://codeload.github.com/wayvr-org/wayvr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayvr-org%2Fwayvr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31682953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","openvr","openvr-overlay","openxr","openxr-overlay","steamvr","steamvr-overlay","vr-overlay","wayland","x11"],"created_at":"2026-03-27T23:00:38.155Z","updated_at":"2026-04-11T14:01:22.833Z","avatar_url":"https://github.com/wayvr-org.png","language":"Rust","readme":"![WayVR splash screen header](https://github.com/wayvr-org/wayvr/blob/guide/wayvr-readme-header.webp?raw=true)\n\n# WayVR (previously WlxOverlay-S)\n\nA lightweight OpenXR/OpenVR overlay for Wayland and X11 desktops.\n\nWayVR lets you access your desktop screens while in VR, and even launch apps directly in VR.\n\nIn comparison to similar overlays, WayVR aims to run alongside VR games and experiences while having as little performance impact as possible. The UI appearance and rendering techniques are kept as simple and efficient as possible, while still allowing a high degree of customizability.\n\n![Screenshot of WayVR being used as an OpenXR home environment](https://github.com/wayvr-org/wayvr/blob/guide/wayvr-readme-screenshot.webp?raw=true)\n\n## Join the Linux VR Community\n\nWe are available on either **Discord** or **Matrix space**:\n\n[![LVRA Discord](https://img.shields.io/discord/1065291958328758352?style=for-the-badge/\u0026logo=discord)](https://discord.gg/EHAYe3tTYa) [![LVRA Matrix](https://img.shields.io/matrix/linux-vr-adventures:matrix.org?logo=matrix\u0026style=for-the-badge)](https://matrix.to/#/#linux-vr-adventures:matrix.org)\n\nQuestions/issues specific to WayVR will be handled in the `wayvr` chat room. Feel free to ask anything.\n\n## Setup\n\n### Installation\n\nThere are multiple ways to install WayVR:\n\n1. AppImage: Download from [Releases](https://github.com/wayvr-org/wayvr/releases)\n1. AUR package: [wayvr](https://aur.archlinux.org/packages/wayvr) or [wayvr-git](https://aur.archlinux.org/packages/wayvr-git)\n1. Nix package: [wayvr](https://search.nixos.org/packages?channel=unstable\u0026show=wayvr\u0026query=wayvr) or [unstable package from nixpkgs-xr](https://github.com/nix-community/nixpkgs-xr)\n1. [Docs: Building from source](https://wayvr.org/docs/basics/building-from-source/).\n\n### General Setup\n\n1. Start Monado, WiVRn or SteamVR.\n1. Run the overlay\n\n**Note:** If you are using Monado or WiVRn, no additional setup steps are required for Flatpak Steam compatibility—most people use WayVR seamlessly with Monado/WiVRn.\n\n### SteamVR via Steam Flatpak\n\nFor users specifically running **SteamVR via Steam Flatpak**, follow these steps:\n\n1. Grab the latest AppImage from [Releases](https://github.com/wayvr-org/wayvr/releases).\n1. `WayVR-*.AppImage --appimage-extract`\n1. `chmod +x squashfs-root/AppRun`\n1. Move the newly created `squashfs-root` folder to a location accessible by the Steam Flatpak.\n1. `flatpak override com.valvesoftware.Steam --user --filesystem=xdg-run/pipewire-0/:rw`\n1. Restart Steam.\n1. Start SteamVR.\n1. `flatpak run --command='/path/to/squashfs-root/AppRun' com.valvesoftware.Steam`\n\n## First Start\n\n**When the screen share pop-up appears, check your notifications or the terminal and select the screens in the order it requests.**\n\nIn case screens were selected in the wrong order:\n\n- Go to Settings and press `Clear PipeWire tokens` and then `Restart software`\n- Pay attention to your notifications, which tell you in which order to pick the screens.\n- If notifications don't show, try starting WayVR from the terminal and look for instructions in there.\n\n**WiVRn users**: Select WayVR from the `Application` drop-down. If there's no such entry, select `Custom` and browse to your WayVR executable or AppImage.\n\n**Envision users**: Go to the Plugins menu and select the WayVR plugin. This will download and run the AppImage version of the overlay.\nTo run a standalone installation (for instance, from the AUR), create a bash script containing `wayvr --openxr --show` and then set this bash script as a custom Envision plugin.\n\nThis will show a home environment with headset passthrough enabled by default or a [customizable background](https://wayvr.org/docs/various/openxr-skybox/)!\n\n**SteamVR users**: WayVR will register itself for auto-start, so there is no need to start it every time. Disclaimer: SteamVR will sometimes disregard this and not start WayVR anyway.\n\n**Please continue reading the guide below.**\n\n## Getting Started\n\n### Working Set\n\nThe working set consists of all currently selected overlays: screens, mirrors, keyboard, etc.\n\nThe working set appears in front of the headset when shown, and can be re-centered by hiding and showing again.\n\nShow and hide the working set using:\n\n- Non-vive controller: double-tap B or Y on the left controller.\n- Vive controller: double-tap the menu button on the left controller (for SteamVR, the `showhide` binding must be bound)\n\nSee the [bindings](#default-bindings) section on how to grab, move and resize overlay windows.\n\n### Pointer Modes AKA Laser Colors\n\nMuch of the functionality in WayVR depends on what color of laser is used to interact with a UI element. \\\nUsing the default settings, there are 3 modes:\n\n- Regular Mode: Blue laser\n- Right-click Mode: Orange laser\n- Middle-click Mode: Purple laser\n\nPlease see the bindings section below on how to activate these modes.\n\nThe guide here uses the colors for ease of getting started.\n\n### The watch\n\nCheck your left wrist for the watch. The watch is the primary tool for controlling the app.\n\nThe top of the watch shows device batteries, and the bottom shows your overlay controls.\n\nEnter edit mode (the leftmost button at the bottom) to edit your overlay sets.\n\nWhile in edit mode, the watch can also be grabbed and passed between your hands.\n\nAfter grabbing, the watch will automatically attach to the hand that's opposite from the one that held it.\n\nIn edit mode, try hovering over other overlays to see their advanced options!\n\n### The screens\n\nHovering a pointer over a screen will move the mouse. If more than one pointer is hovering over a screen, the pointer that was last used to click will take precedence.\n\nThe click type depends on the laser color:\n\n- Blue laser: Left click\n- Orange laser: Right click\n- Purple laser: Middle click\n- Stick up/down: Scroll wheel\n\n### The keyboard\n\nTyping\n\n- Use the BLUE laser when typing regularly.\n- While using the ORANGE laser, all keystrokes will have SHIFT applied.\n- Purple laser is customizable via the settings, no modifier by default.\n\n**Modifier Keys are sticky**. They will remain pressed until either:\n\n- a non-modifier key is pressed\n- the modifier is toggled off by clicking again\n- the keyboard is hidden (including via show-hide)\n\n### Default Bindings\n\n![Index Controller Bindings](https://github.com/wayvr-org/wayvr/blob/guide/wlx-index.png)\n\n![Touch Controller Bindings](https://github.com/wayvr-org/wayvr/blob/guide/wlx-oculus.png)\n\n### Changing Bindings\n\nSteamVR: Simply change the bindings from the SteamVR bindings section. If WayVR doesn't show up on the list, select any other title and then press back on the top left. (SteamVR is weird like that sometimes)\n\nOpenXR (Monado/WiVRn): See [Docs: OpenXR Bindings](https://wayvr.org/docs/various/openxr-bindings/)\n\nIf your controllers are not supported, please reach out. \\\nWe would like to work with you and include additional bindings.\n\n## Customization\n\nSee these relevant wiki pages:\n\n- For all available config options, check [Docs: Configuration](https://wayvr.org/docs/basics/configuration/)\n- Looking to customize look \u0026 feel, or add functionality? See [Docs: Customization](https://wayvr.org/docs/basics/customization/)\n- Looking to change the OpenXR background? See [Docs: OpenXR Skybox](https://wayvr.org/docs/various/openxr-skybox/)\n\n## Troubleshooting\n\nWhen an error is detected, we often print tips for fixing it into the log file.\n\nLogs will be at `/tmp/wayvr.log` for most distros.\n\nCheck [here](https://wayvr.org/docs/various/troubleshooting/) for tips.\n\n## Known Issues\n\n### Mouse is not where it should be\n\nIf the mouse is moving on a completely different screen, the screens were likely selected in the wrong order:\n\n- Go to Settings and press `Clear PipeWire tokens` and then `Restart software`\n- Pay attention to your notifications, which tell you in which order to pick the screens.\n- If notifications don't show, try starting WayVR from the terminal and look for instructions in there.\n\nCOSMIC desktop:\n\n- Due to limitations with COSMIC, the mouse can only move on a single display.\n\nX11 users:\n\n- Might be dealing with a [Phantom Monitor](https://wiki.archlinux.org/title/Xrandr#Disabling_phantom_monitor).\n- DPI scaling is not supported and will mess with the mouse.\n- Upright screens are not supported and will mess with the mouse.\n\n### Screens are blank or black or frozen on SteamVR 2.14+\n\nAs of SteamVR version 2.14.x, PipeWire capture no longer works when using Steam Link.\n\nWe're unable to completely troubleshoot how and why SteamVR interferes with PipeWire, so consider the following workarounds for the time being:\n\n- Use another streamer, such as WiVRn or ALVR. Note that SteamVR on Linux is considered experimental by Valve themselves [disclaimer](https://github.com/ValveSoftware/SteamVR-for-Linux?tab=readme-ov-file#steamvr-release-notes-and-known-issues).\n- If your desktop [supports ScreenCopy](https://wayland.app/protocols/wlr-screencopy-unstable-v1#compositor-support), go to Settings and set `Wayland capture method` to `ScreenCopy`\n- If your desktop has an X11 mode, try using that\n\n### Modifiers get stuck\n\nHiding the keyboard will unpress all of its buttons. Alternatively, go to Settings and use the `Restart software` button.\n\n### X11 limitations\n\n- X11 capture can generally seem slow. This is because zero-copy GPU capture is not supported on the general X11 desktop. Consider trying Wayland.\n- DPI scaling is not supported and may cause the mouse to not follow the laser properly.\n- Upright screens are not supported and can cause the mouse to not follow the laser properly.\n- Screen changes (connecting/disconnecting a display, resolution changes, etc) are not handled at runtime. Restart the overlay for these to take effect.\n","funding_links":["https://opencollective.com/wayvr-org"],"categories":["linux"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwayvr-org%2Fwayvr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwayvr-org%2Fwayvr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwayvr-org%2Fwayvr/lists"}