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

Ubuntu

The Ubuntu-specific parts of installing sottomano: the build headers for cargo and the one command that sets up everything else the widgets read. The bar itself builds from source or comes from Nix, and starts with the session as the session page shows.

Build headers

Before the first cargo build, which needs the headers sottomano links against:

sudo apt install build-essential pkg-config clang libclang-dev \
  libwayland-dev libxkbcommon-dev libgl-dev libvulkan-dev \
  libudev-dev libsystemd-dev libpipewire-0.3-dev

System setup

sottomano setup writes the system files and runs the system commands the widgets read: the modules and udev rules, the runtime tools the widgets call, and the journal group. Review everything it does first:

sottomano setup ubuntu --print

then run it:

sudo sottomano setup ubuntu

It is idempotent: files whose contents already match are left alone. Steps can be left out with --skip (rapl, amd-uncore, journal, runtime-tools), repeatable or comma-separated. Tailscale comes from its own repository, and VPNs show up when NetworkManager runs them through a VPN plugin, such as network-manager-openconnect or network-manager-openvpn.

Ubuntu uses the sudo group where other distributions use wheel; what each system piece is for is on the system setup page.