Homebrew-XR Tap #
Homebrew tap for XR (Virtual Reality, Augmented Reality etc.) software
If this tap has made your time with VR on Linux easier, please consider donating. I would really appreciate it, and your donation will allow me to:
- cover CI/hosting costs
- continue adding new software
- keep the tap up-to-date and secure
If there are any features or packages you would like prioritized, feel free to mention it in your donation message, and I'll try to give them some love!
- Matrix ❤️
Install #
One-line installer:
bash -c "$(curl -fsSL https://tangled.org/matrixfurry.com/homebrew-xr/raw/main/scripts/setup.sh)"
Or directly add this tap your system with Homebrew
brew tap matrixfurry.com/xr https://tangled.org/did:plc:tnpscg53k2nexylmouhv4b5e
Installing Applications #
Note
Don't see the software you need? Create a request to let us know! We're always happy to add new software from the community.
Use brew install <application> to install Formulae/Casks:
- Envision:
envision - Monado:
monado - WayVR:
wayvr - Monado Hand Tracking Models (Mercury):
monado-hand-tracking-models - Envision-OCI:
envision-oci - LÖVR Playspace:
lovr-playspace - Monado Tracking Origin Calibrator (motoc):
motoc - OSC Avatar Manager (oscavmgr):
oscavmgr - xr_passthrough_layer:
xr-passthrough-layer - Stardust XR:
stardust-xr-telescope - Index Camera Passthrough:
index-camera-passthrough
You can view a list of all available packages in Homebrew-XR with: brew search /xr\//.
Contributing #
We welcome bug reports and patches from everyone. However, keep in mind that our core team has final say on the design and implementation of everything.
Helpful links:
Strict No LLM / No AI Policy #
No LLMs for issues.
No LLMs for patches / pull requests.
No LLMs for comments on the bug tracker, including translation.
English is encouraged, but not required. You are welcome to post in your native language and rely on others to have their own translation tools of choice to interpret your words.
Find a New-Contributor Friendly Issue #
The good-first-issue label exists to help you find issues that are limited in scope or required Homebrew knowledge.
Testing #
Please test your changes before opening a pull request or submitting a patch. You can add your local development repo to Homebrew using one of the following methods:
1. Immediate changes
Note
Replace {tap_url} with the SSH clone URI for your fork, or if you're submitting a patch, you can use the normal repo's HTTPS URL.
- Add the tap to your system:
brew tap matrixfurry.com/xr {tap_url} - (optional) Create a symlink from the tap to your usual development directory:
ln -s /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/matrixfurry.com/homebrew-xr {your_dev_directory} - Your changes will be immediately applied, no need to use
brew upgradeor create temporary commits before testing changes.
2. Pulling from local git repo
Note
Replace {tap_url} with the SSH clone URI for your fork, or if you're submitting a patch, you can use the normal repo's HTTPS URL.
- Clone the remote repository:
jj git clone --colocate {tap_url} {name}orgit clone {tap_url} {name} - Create a commit for your change (this is always required for Homebrew to pull the change)
- Run
brew update; brew upgradeto pull the changes from your local repo
Submitting your changes #
Setting up Git and/or Jujutsu with Tangled #
If you already have an SSH key and commit signing set up, you can add it to your Tangled profile in settings.
If not, we have a quick setup script for contributors who are new to Tangled:
brew install nushell
nu -c "cd (mktemp -td); git clone https://tangled.org/did:plc:7lcd6gkbuwwxzlto7xsilehx scripts; cd scripts; scripts/tangled-quick-setup.nu"
This script will help you quickly set up:
- An SSH key
- Commit signing
- Change ID headers
Commit guidelines #
We follow a commit style similar to the Go project. Please keep commits:
- atomic: each commit should represent one logical change
- descriptive: the commit message should clearly describe what the change does and why it’s needed
Message format #
<affected package/directory>: <short summary of change>
Optional longer description can go here, if necessary. Explain what the
change does and why, especially if not obvious. Reference relevant
issues or PRs when applicable. These can be links for now since we don't
auto-link issues/PRs yet.
Here are some examples:
setup,docs: use did-based tap url
Use the stable, DID-based Tangled repo URL to avoid breakage on future
renames.
Fixes: https://tangled.org/matrixfurry.com/homebrew-xr/issues/28
openxr: skip relocation & add runtime deps
General notes #
- PRs get merged “as-is” (fast-forward)—like applying a patch-series using
git am. At present, there is no squashing—so please author your commits as they would appear onmain, following the above guidelines. - Keep commits lowercased with no trailing period.
- Use the imperative mood in the summary line (e.g., “fix bug” not “fixed bug” or “fixes bug”).
- Try to keep the summary line under 72 characters.
- Keep the reasoning for changes in the commit body, not the summary line.
- Follow the same formatting for PR titles if filled manually.
- Don’t include unrelated changes in the same commit.
- Avoid noisy commit messages like “wip” or “final fix”—rewrite history before submitting if necessary.
Opening a pull request #
- Create a new PR at https://tangled.org/matrixfurry.com/homebrew-xr/pulls/new
- Select your preferred source (fork or patch)
- If you're changing anything that requires a rebuild (e.g. updating a Formula), merge into
staging, otherwise selectmain. - If you're using a patch, you can paste it here, otherwise if you're using a fork, select it in "Pull From".
- Review your changes and add some context to help us review your PR more quickly.
Addressing reviews & re-submitting #
We use a "round-based" review format. Your initial submission starts "round 0". Once your submission receives scrutiny, you can address reviews and resubmit your patch. This resubmission starts "round 1". You can commit as much as you want to your branch, but a new round only begins when you choose to hit "resubmit".
Optionally, if you already use Jujutsu VCS, you can easily write change IDs to your commits and use stacked PRs.
These blog posts go into more detail about round-based review, if you're interested:
Team & Maintainers #
Core Team, with access to the repository:
- Project Lead/Owner: Matrix (@matrixfurry.com)
- Package Maintainer: TheDKG (@thedkg.tngl.sh)