Repository navigation
Installing on Linux
This page is generated from docs/LINUX.md. To change it, edit that file in the repository: edits made here are replaced.
Block’s published releases today are Windows. When a Linux archive is attached to a release, it is a portable tarball: extract and run, nothing to install as root. You can also build from source. The notes below match the upstream Linux packaging; tell us what breaks on your distro.
- A 64-bit PC (x86-64) and a graphics card with a Vulkan driver.
- A recent distribution: the viewer is built on Ubuntu 24.04 and needs glibc 2.39 or later (Arch, CachyOS, Manjaro, Fedora 40 or later, Ubuntu 24.04 or later, Debian 13…).
- X11 or Wayland, and PipeWire, PulseAudio or ALSA for the sound. When a
PipeWire (with
pipewire-pulse) or PulseAudio server runs, the viewer plays and records through it, so its own sinks and sources appear in Preferences; otherwise it uses ALSA directly. No extra package is needed.
The viewer itself needs Vulkan, the sound and the windowing libraries. Web pages, YouTube and video on media faces also need the libraries of the built-in browser and GStreamer for video, as in the Legacy Viewer.
Arch Linux, CachyOS, Manjaro
sudo pacman -S --needed vulkan-icd-loader alsa-lib libxkbcommon wayland libx11 libxcursor libxrandr libxi \
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav \
nss nspr at-spi2-core libcups libxcomposite libxdamage mesa pango cairoDebian, Ubuntu
sudo apt install libvulkan1 libasound2t64 libxkbcommon0 libwayland-client0 libx11-6 libxcursor1 libxrandr2 libxi6 \
gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav \
libnss3 libatk-bridge2.0-0t64 libcups2t64 libxcomposite1 libxdamage1 libgbm1 libpango-1.0-0 libcairo2Plus the Vulkan driver of your graphics card if it is not there yet:
vulkan-radeon (AMD), vulkan-intel (Intel) or the NVIDIA driver on Arch;
mesa-vulkan-drivers or the NVIDIA driver on Debian and Ubuntu.
From the latest release,
download Block-Viewer-vX.Y.Z-linux-x64.tar.gz and its .sha256 file into
the same folder, then:
sha256sum -c Block-Viewer-vX.Y.Z-linux-x64.tar.gz.sha256
tar -xzf Block-Viewer-vX.Y.Z-linux-x64.tar.gzThe archive holds one folder, Block-Viewer-vX.Y.Z-linux-x64, with the
viewer (block-viewer), its desktop entry and icon, its licences and the
README. Move it where you like, for example ~/.local/opt/block-viewer.
cd Block-Viewer-vX.Y.Z-linux-x64
./block-viewerTo start it from your desktop's menu, with its icon in the panel and the dock, install the desktop entry and the icon of the archive, from its folder. The entry gets the viewer's real path, quoted and escaped as the desktop entry specification asks, so a folder name with spaces or symbols works:
install -Dm644 block-viewer.svg ~/.local/share/icons/hicolor/scalable/apps/block-viewer.svg
mkdir -p ~/.local/share/applications
exe=$(printf '%s' "$PWD/block-viewer" | sed -e 's/[\\"`$]/\\&/g' -e 's/\\/\\\\/g' -e 's/%/%%/g')
EXEC="\"$exe\"" awk '/^Exec=/ { print "Exec=" ENVIRON["EXEC"]; next } 1' block-viewer.desktop > ~/.local/share/applications/block-viewer.desktopRun the last two lines again if you move the folder. Avoid a % in the
folder's path: GNOME and other GLib desktops then refuse the entry. The
window identifies itself as block-viewer (Wayland app_id and X11
WM_CLASS), the name of the entry and its StartupWMClass: that is how
the desktop puts the window under the entry's icon. Compositor rules can
match it too (Hyprland: class:^(block-viewer)$; KDE: window class
block-viewer).
The first time a web page or a video needs them, the viewer asks before it
downloads the media plugins (about 200 MB), once; "Not now" leaves a
Download button in Preferences › Sound and voice › Media and where the page
would show, and the same row shows the progress. They go to
~/.local/share/auroraviewer/media-plugins.
-
Video does not play: check that the GStreamer packages of step 1 are installed (
gst-libav/gstreamer1.0-libavfor H.264 and AAC). -
A web page stays blank: this command lists the browser libraries that are missing; install their packages.
ldd ~/.local/share/blockviewer/media-plugins/*/llplugin/libcef.so | grep "not found"
-
The built-in browser runs without Chromium's sandbox, as in the Legacy Viewer, unless
chrome-sandbox(in the samellpluginfolder) belongs to root and has the setuid bit.
The viewer tells you when a new version is out, but it cannot replace itself on Linux yet: its "Open the release page" button leads to the new archive. Extract it as in step 2, in place of the old folder or next to it. Your settings, cache and logs are kept: they are not in the viewer's folder.
| What | Where |
|---|---|
| Settings | ~/.config/blockviewer |
| Cache | ~/.cache/blockviewer |
| Logs, media plugins | ~/.local/share/blockviewer |
Preferences › Language and updates › "Open SLURL and Hypergrid links in
Block" makes Block the handler of secondlife://, hop:// and
x-grid-location-info:// links for the current user. It writes a hidden
desktop entry, ~/.local/share/applications/block-viewer-slurl.desktop,
and makes it the default for the three schemes in ~/.config/mimeapps.list;
the rest of that file is kept. Turning it off removes both. A link opened
while Block runs goes to that viewer over the session bus instead of
starting a second one. Wayland does not let it bring its window to the
front, so the window stays where it is (X11 is not tested yet).
A desktop-specific list (~/.config/<desktop>-mimeapps.list, such as
kde-mimeapps.list) comes first: if it names another program for these
links, Preferences names that program instead.
xdg-open (from xdg-utils) cannot start a program whose path holds a
space or a symbol such as ', & or (: it then opens the link in
another viewer. Keep the viewer's folder path plain, or open links through
your desktop (GNOME, KDE and other GLib desktops read such paths).
- Automatic installation of updates (above).
- The crash window right after a crash: it opens at the next launch instead, and a native crash (a signal) leaves no trace in it.
- Preferences › Sound and voice › "Mute when minimised" on Wayland: the compositor does not tell a window that it is minimised, so the sound keeps playing. Under X11 the viewer reads the window manager's hidden state (X11 is not tested yet).
sudo pacman -S --needed git base-devel rustup cmake clang pkgconf alsa-lib libxkbcommon wayland libx11 libxcursor libxrandr libxi vulkan-icd-loader
rustup default stable
git clone https://github.com/ape-squared/Block-Viewer block-viewer
cd block-viewer
cargo build --release -p block-viewer
./target/release/block-viewerOn Debian and Ubuntu, the build packages are build-essential cmake clang pkg-config libasound2-dev libudev-dev libxkbcommon-dev libwayland-dev, with
Rust from rustup.rs.
See Reporting bugs, and say that you are on Linux, with your distribution and graphics card.
See the cross-platform VR setup and limitations guide. Linux uses the native Vulkan/OpenXR path; start WiVRn and connect the headset before launching Aurora. Quest 3 / WiVRn 26.9 / RTX 3090 is the human-validated configuration. The guide covers toolbar entry, Esc restoration, recording, dependencies and viewing-only limitations, plus Windows and experimental macOS setup.
Generated from the repository; the guides are edited there.
For testers
- Reporting bugs
- Installing on Linux
- Experimental VR scene viewing
- Experimental Windows VR
- Installing on macOS
- Updates
- Asset imports
- LiveMesh
- Motorcycle hand contacts
- IK Edit and bone contacts
- Create native animations
- Local photo poser
- Dev Toolbox
Contributing
Technical
In the repository