XR for Universal Blue and Fedora Atomic Desktops
vr fedora-atomic linux
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add migration script

+103
+94
migrate.nu
··· 2 2 # SPDX-License-Identifier: AGPL-3.0-only 3 3 # Copyright (c) 2026 MatrixFurry <matrix@matrixfurry.com> 4 4 5 + use std log 6 + 7 + let axr_containers = try { 8 + distrobox ls 9 + | parse "{id} | {name} | {status} | {image}" 10 + | skip 1 11 + | get name 12 + | str trim 13 + | where $it == "envision" or $it == "atomic-xr" 14 + } catch {[]} 15 + 16 + def main [] { 17 + log info "Starting migration" 18 + 19 + # TODO: Add explanation of the changes 20 + 21 + # Get current state 22 + let migrate_envision = ($axr_containers | length) != 0 23 + mut cli_installed = (which axr | length) != 0 24 + 25 + # Remove AtomicXR Envision 26 + if $migrate_envision and not $cli_installed { 27 + log info "Temporarily installing the AtomicXR CLI to remove AtomicXR Envision" 28 + try { 29 + brew install atomicxr-cli 30 + $cli_installed = true 31 + } catch { 32 + log critical "The AtomicXR CLI is required to remove AtomicXR Envision" 33 + return 1 34 + } 35 + } 36 + if $migrate_envision { 37 + log info "Removing AtomicXR Envision" 38 + axr envision uninstall 39 + } else { 40 + log info "AtomicXR Envision is not installed, skipping this step" 41 + } 42 + 43 + # Remove AtomicXR CLI, and revert it's changes 44 + if $cli_installed { 45 + log info "Removing AtomicXR CLI" 46 + remove-atomicxr-cli 47 + } else { 48 + log info "AtomicXR CLI is not installed, skipping this step" 49 + } 50 + 51 + # Migrate to Homebrew-XR tap 52 + migrate-tap 53 + 54 + # Install Envision-OCI if needed 55 + if $migrate_envision {brew install envision-oci} 56 + 57 + log info "Migration finished" 58 + } 59 + 60 + def remove-atomicxr-cli [] { 61 + log info "Removing runtime system packages" 62 + axr runtime uninstall 63 + 64 + log info "Reverting manual AtomicXR CLI configuration" 65 + axr flatpak steam disable-xr 66 + axr flatpak gaiasky disable-vr 67 + 68 + log info "Uninstalling AtomicXR CLI" 69 + brew remove atomicxr-cli 70 + } 71 + 72 + def migrate-tap [] { 73 + let axr_taps = brew tap | lines | where $it like "matrixfurry.*/atomic.*" 74 + 75 + if ($axr_taps | length) == 0 { 76 + log warning "Could not find installed AtomicXR Homebrew Tap, skipping this step" 77 + return 78 + } 79 + 80 + log info "Removing packages installed via the AtomicXR Homebrew Tap" 81 + brew list --full-name 82 + | lines 83 + | where $it like "matrixfurry.*/atomic.*/" 84 + | each {|pkg| 85 + log info $"-> Uninstalling package: ($pkg | str replace -r '.*/' '')" 86 + brew remove $pkg 87 + } 88 + 89 + log info "Removing the AtomicXR Homebrew Tap" 90 + $axr_taps | each {|tap| 91 + brew untap $tap 92 + } 93 + 94 + log info "Adding Homebrew-XR tap" 95 + brew tap matrixfurry.com/xr https://tangled.org/matrixfurry.com/homebrew-xr 96 + 97 + # TODO: Re-install packages from new tap 98 + }
+9
migrate.sh
··· 2 2 # SPDX-License-Identifier: AGPL-3.0-only 3 3 # Copyright (c) 2026 MatrixFurry <matrix@matrixfurry.com> 4 4 5 + set -euo pipefail 6 + 7 + brew install nushell 8 + 9 + TMPDIR=$(mktemp -d) 10 + cd $TMPDIR 11 + 12 + curl -fsSL -O https://tangled.org/matrixfurry.com/atomic-xr/raw/main/migrate.nu 13 + exec ./migrate.nu