Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Packaging (deb, rpm, Arch, Nix)

ashell is distributed through multiple packaging formats.

.deb Packages (Debian/Ubuntu)

Generated by generate-installers.yml using nfpm.

Package metadata comes from Cargo.toml. Dependencies are declared as nfpm overrides, because cargo-nfpm ignores depends in the plain [package.metadata.nfpm.deb] table (its deb settings have no such field):

[package.metadata.nfpm.overrides.deb]
depends = ["libxkbcommon0", "libwayland-client0", "libpipewire-0.3-0t64", "libpulse0", "libudev1", "dbus"]

The .deb installs on Ubuntu 24.04+ and Debian 13+. The release binary is built on ubuntu-24.04 and needs glibc 2.39, and libpipewire-0.3-0t64 only exists from those releases on. Older releases (Ubuntu 22.04, Debian 12) refuse the package at install time instead of failing at launch.

.rpm Packages (Fedora/RHEL)

Also generated by generate-installers.yml with nfpm.

[package.metadata.nfpm.overrides.rpm]
depends = ["libxkbcommon", "libwayland-client", "pipewire-libs", "pulseaudio-libs", "systemd-libs", "dbus"]

After building, generate-installers.yml installs each .deb in ubuntu:24.04 and debian:trixie and each .rpm in fedora:latest, checks ldd for missing libraries and runs ashell --version. A failure stops the release before anything is uploaded. To try it without publishing, run the Release workflow manually with the default dry-run tag.

Separately, copr-build.yml builds an SRPM with cargo rpm (using .rpm/ashell.spec) on v* tag pushes and submits it to the community Fedora Copr repository killcrb/ashell.

Arch Linux (AUR)

The update-arch-package.yml workflow runs after each release but is currently a placeholder (it only prints a message); the AUR package is not updated automatically. Users install via:

yay -S ashell
# or
paru -S ashell

Nix

The flake.nix provides a Nix package:

# Run directly
nix run github:MalpenZibo/ashell

# Install
nix profile install github:MalpenZibo/ashell

Shell Installer

cargo-dist generates a shell installer script for manual installation:

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MalpenZibo/ashell/releases/latest/download/ashell-installer.sh | sh

Common Dependencies Across Formats

All packages share these runtime dependencies:

DependencyPurpose
libxkbcommonKeyboard handling
dbusD-Bus daemon
libwayland-clientWayland protocol
libpipewirePipeWire audio
libpulsePulseAudio compatibility