Skip to content

Instantly share code, notes, and snippets.

@bcolloran
Created June 15, 2025 20:09
Show Gist options
  • Select an option

  • Save bcolloran/f7751b22bc336b51f005c8100680856a to your computer and use it in GitHub Desktop.

Select an option

Save bcolloran/f7751b22bc336b51f005c8100680856a to your computer and use it in GitHub Desktop.
Script for installing Tracy on Linux Mint 22.1 under X11 (not default Wayland). Worked for me, YMMV.
#!/usr/bin/env bash
# install_tracy_mint: End-to-end install script for Tracy Profiler on Linux Mint
# This script always operates under ~/tracy and installs Tracy to /usr/local by default.
set -euo pipefail
# 1. Define directories
TRACY_HOME="$HOME/tracy"
REPO_DIR="$TRACY_HOME/tracy"
BUILD_DIR="$REPO_DIR/build"
# To override install prefix, set INSTALL_PREFIX before running this script.
# e.g. export INSTALL_PREFIX="$HOME/tracy/install"
INSTALL_PREFIX="${INSTALL_PREFIX-}"
# 2. Install dependencies
sudo apt update
sudo apt install -y \
build-essential git cmake pkg-config \
libdbus-1-dev libfreetype6-dev libtbb-dev \
libxkbcommon-dev libwayland-dev libglvnd-dev \
libxcb1-dev libxcb-xinerama0 libxinerama-dev libx11-xcb-dev xwayland \
libxrandr-dev libxcursor-dev libxi-dev
# 3. Clone the Tracy repository into ~/tracy/tracy
mkdir -p "$TRACY_HOME"
if [ ! -d "$REPO_DIR" ]; then
git clone https://github.com/wolfpld/tracy.git "$REPO_DIR"
fi
cd "$REPO_DIR"
# 4. Checkout latest release tag (required for build compatibility)
latest_tag=$(git describe --tags "$(git rev-list --tags --max-count=1)")
git fetch --tags
git checkout "$latest_tag"
# 5. Configure build (enable X11 LEGACY backend)
mkdir -p "$BUILD_DIR"
cmake -B "$BUILD_DIR" -S profiler -DCMAKE_BUILD_TYPE=Release \
-DLEGACY=ON \
${INSTALL_PREFIX:+-DCMAKE_INSTALL_PREFIX="$INSTALL_PREFIX"}
# 6. Build
cmake --build "$BUILD_DIR" --parallel
# 7. Install Tracy Profiler
if [ -n "$INSTALL_PREFIX" ]; then
cmake --install "$BUILD_DIR"
EXEC_PROFILER="$INSTALL_PREFIX/bin/tracy-profiler"
else
sudo cmake --install "$BUILD_DIR"
EXEC_PROFILER="/usr/local/bin/tracy-profiler"
fi
EXEC_PATH="$EXEC_PROFILER"
# 8. Create desktop entry
# Use QT_QPA_PLATFORM=xcb env to force XCB (avoids Wayland errors)
DESKTOP_DIR="$HOME/.local/share/applications"
mkdir -p "$DESKTOP_DIR"
cat <<EOF > "$DESKTOP_DIR/tracy.desktop"
[Desktop Entry]
Version=1.0
Name=Tracy Profiler
Comment=Real-time frame and sampling profiler
Exec=env QT_QPA_PLATFORM=xcb $EXEC_PATH %U
Icon=utilities-system-monitor
Terminal=false
Type=Application
Categories=Development;Profiling;
EOF
# 9. Summary
cat <<MSG
Tracy Profiler installed successfully!
- Source: $REPO_DIR (checked out $latest_tag)
- Build artifacts: $BUILD_DIR
- Executable: $EXEC_PATH
- Desktop entry: $DESKTOP_DIR/tracy.desktop
To launch:
- From terminal (forces XCB backend):
QT_QPA_PLATFORM=xcb $EXEC_PATH
- From application menu: click "Tracy Profiler"
MSG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment