Installation Guide¶
One-liner (Recommended)¶
This automatically:
- Detects your package manager (apt / dnf / pacman / zypper / apk)
- Installs all system dependencies
- Installs uv if not present
- Clones ShotX to
~/.local/share/shotx/ - Creates a
shotxlauncher at~/.local/bin/shotx - Adds an XDG autostart entry so ShotX launches on login
Note
~/.local/bin must be in your PATH. If it isn't, add this to your shell config and restart:
Env-var overrides for CI / Docker builds:
# Skip system dep installation (if you manage deps yourself)
SKIP_SYSTEM_DEPS=1 sh install.sh
# Skip XDG autostart entry creation
SKIP_AUTOSTART=1 sh install.sh
Native Packages¶
Download the latest .deb, .rpm, or AppImage from the GitHub Releases page.
# Ubuntu / Debian
sudo dpkg -i shotx_*.deb
# Fedora / RHEL
sudo rpm -i shotx-*.rpm
# AppImage (any distro)
chmod +x ShotX-*.AppImage && ./ShotX-*.AppImage
The
.deband.rpmpackages bundle a private Python runtime — no system Python or library conflicts.
Homebrew (Linux)¶
Note
After install, run shotx to start. The Welcome dialog will guide you through desktop integration on first launch.
From Source (Manual)¶
Prerequisites¶
- Python 3.10 or later
- uv (recommended) or pip
- A Linux desktop with Wayland or X11
Steps¶
# Clone the repository
git clone https://github.com/vedesh-padal/ShotX.git
cd ShotX
# Set up with uv
uv sync --all-groups
# Launch
uv run shotx # System tray mode
uv run shotx --help # See all CLI options
Tip
You can also use the inclusive Justfile or Makefile in the root for automated setup and development tasks (e.g., just setup-deps-debian, just sync).
With pip¶
git clone https://github.com/vedesh-padal/ShotX.git
cd ShotX
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[all,dev]"
shotx
System Dependencies¶
Some features require system packages. ShotX works without them but with reduced functionality.
Required¶
| Package | Purpose | Install |
|---|---|---|
| Python 3.10+ | Runtime | Pre-installed on most distros |
Recommended¶
| Package | Purpose | Install (Ubuntu/Debian) |
|---|---|---|
xclip | Persistent clipboard in X11 CLI mode | sudo apt install xclip |
wl-copy | Persistent clipboard in Wayland CLI mode | sudo apt install wl-clipboard |
Optional (Feature-Specific)¶
| Package | Feature | Install (Ubuntu/Debian) |
|---|---|---|
tesseract-ocr | OCR text extraction | sudo apt install tesseract-ocr |
libzbar0 | QR code scanning | sudo apt install libzbar0 |
ffmpeg | Screen recording (X11), GIF conversion | sudo apt install ffmpeg |
wf-recorder | Screen recording (Wayland/wlroots) | sudo apt install wf-recorder |
grim | Screenshots on Sway/Hyprland | sudo apt install grim |
slurp | Region selection on Sway/Hyprland | sudo apt install slurp |
Note
PyGObject is automatically downloaded as a core Python dependency for native DBus notifications. However, if you are building from source, you may need to install the system headers. The exact package name depends on your Ubuntu/Debian version:
- Ubuntu 22.04 / Debian 11:
sudo apt install libcairo2-dev libgirepository1.0-dev pkg-config - Ubuntu 24.04+ / Debian 12+:
sudo apt install libcairo2-dev libgirepository-2.0-dev pkg-config
PyPI (Coming Soon)¶
ShotX is not yet published to PyPI. Install from source (above) or watch the releases page.