Skip to content

Installing on Linux

github-actions[bot] edited this page Nov 6, 2026 · 2 revisions

This page is generated from docs/LINUX.md. To change it, edit that file in the repository: edits made here are replaced.

Installing Block Viewer on Linux

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.

Requirements

  • 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.

1. Install the system packages

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 cairo

Debian, 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 libcairo2

Plus 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.

2. Download and extract

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.gz

The 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.

3. Start the viewer

cd Block-Viewer-vX.Y.Z-linux-x64
./block-viewer

To 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.desktop

Run 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).

Web pages and video

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-libav for 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 same llplugin folder) belongs to root and has the setuid bit.

Updates

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

Second Life links

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).

Not on Linux yet

  • 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).

Building from source

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-viewer

On 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.

Reporting a problem

See Reporting bugs, and say that you are on Linux, with your distribution and graphics card.

Experimental VR scene viewing

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.

Clone this wiki locally