Install mpmux from the Arch repository#
This page is for Arch Linux on x86_64. It covers the signed pacman repository, the manual package install, and removal.
The repository publishes mpmux, mpmux-cli, and mpmux-sessiond in one
package. The current published release is mpmux 0.1.1-1.
What you get#
The package installs these files:
/usr/bin/mpmux— the desktop multiplexer/usr/bin/mpmux-cli— host-control command line/usr/bin/mpmux-sessiond— the session daemon/usr/lib/systemd/user/mpmux-sessiond.service— user service/usr/share/applications/dev.mightypainting.mpmux.desktop/usr/share/metainfo/dev.mightypainting.mpmux.appdata.xml/usr/share/icons/hicolor/icons/usr/share/doc/mpmux/documentation
Runtime dependencies: gcc-libs, libxkbcommon, wayland, libx11.
1. Add the signing key#
pacman must trust the key that signs the repository. Download the public key, add it to the pacman keyring, and mark it as trusted:
curl -fsSL https://mightypainting.dev/mpmux/mpmux-release.asc | \
sudo tee /etc/pacman.d/gnupg/mpmux-release.asc >/dev/null
sudo pacman-key --add /etc/pacman.d/gnupg/mpmux-release.asc
sudo pacman-key --lsign-key 7141921A91D28916712395C61DB628AEBFFE7E63
The key id is 7141921A91D28916712395C61DB628AEBFFE7E63
(Lutz Paelike <lutz@delutze.de>), the key in mpmux-release.asc. Make sure
that pacman-key --list-keys shows that fingerprint before you install.
Earlier versions of this page named CD117C3779D6EF8D876219CA9DFA43B771A4103C,
which is not in mpmux-release.asc and does not sign the Arch repository, so
pacman-key --lsign-key failed for it. The Debian/Ubuntu repository uses
that key.
2. Add the repository entry#
Put these lines at the end of /etc/pacman.conf:
[mpmux]
Server = https://mightypainting.dev/mpmux/arch/$arch
SigLevel = Required TrustedOnly
Required TrustedOnly makes pacman check the database signature and the
signature of each package. Do not set TrustAll. TrustAll disables the
signature check.
3. Install#
sudo pacman -Syu mpmux
Start the session daemon when you want detachable sessions:
systemctl --user daemon-reload
systemctl --user enable --now mpmux-sessiond.service
The packaged service is local-only. It listens on
$XDG_RUNTIME_DIR/mpmux-sessiond.sock. It does not enable TCP, Iroh, auth, or
Android pairing.
4. Make sure that the install works#
which mpmux mpmux-cli mpmux-sessiond
mpmux-sessiond ping
mpmux
mpmux-sessiond ping prints ok when the daemon answers on the user socket.
Manual install without a repository entry#
Download the package file and install it directly:
curl -fsSL -O https://mightypainting.dev/mpmux/arch/x86_64/mpmux-0.1.1-1-x86_64.pkg.tar.zst
curl -fsSL -O https://mightypainting.dev/mpmux/arch/x86_64/mpmux-0.1.1-1-x86_64.pkg.tar.zst.sig
sudo pacman -U mpmux-0.1.1-1-x86_64.pkg.tar.zst
Make sure that the signature matches the published key before you install:
curl -fsSL https://mightypainting.dev/mpmux/mpmux-release.asc | gpg --import
gpg --verify mpmux-0.1.1-1-x86_64.pkg.tar.zst.sig mpmux-0.1.1-1-x86_64.pkg.tar.zst
gpg must report a good signature from that key id. A warning about missing
key trust is normal. An error means you must not install the file.
Update#
sudo pacman -Syu mpmux
systemctl --user restart mpmux-sessiond.service
A daemon restart interrupts hosted sessions. Schedule it when an interruption
is permitted. Installers never overwrite the auth store or endpoint keys under
~/.config/mpmux.
Remove#
sudo pacman -Rns mpmux
pacman -Rns removes the package, its dependencies that nothing else needs,
and its configuration files. It does not delete ~/.config/mpmux, auth
stores, keys, or terminal history.
Remove the [mpmux] block from /etc/pacman.conf when you do not want the
repository any more.
Problems#
signature from "..." is not trusted — the key is not in the pacman
keyring, or you did not run pacman-key --lsign-key. Repeat step 1.
repository 'mpmux' does not contain a package — make sure that the
Server line ends in /arch/$arch, then run sudo pacman -Sy.
No such file or directory for arch/aarch64 — the aarch64 repository is
not published. Only x86_64 exists today. Build the package on an aarch64 host
with just arch-package, see docs/PACKAGING.md.
mpmux-sessiond ping prints no ok — start the service with
systemctl --user start mpmux-sessiond.service, then read
journalctl --user -u mpmux-sessiond.service -n 50.
Related pages#
docs/PACKAGING.md— how to build and publish the package and repositorydocs/INSTALLATION.md— the Linux tarball bundle and the Android APKdocs/QUICKSTART.md— first session, pairing, tablet usedocs/TROUBLESHOOTING.md— deeper daemon and network problems