Ubuntu
Base system setup for Ubuntu and WSL: apt upgrades, system packages, and locale. Imports the unix base role for the ~/.profile.d/ shell framework, ~/scripts, ~/.versions.d/, and the generic aliases — so this role only adds the Debian-specific pieces. On macOS the macos role plays the same part.
Demo

What it does
- Imports the
unixbase role (shell framework, scripts, generic aliases) - Runs
aptsafe upgrade and removes unused packages - Installs system packages:
ca-certificates,curl,wget,gnupg,unzip,dnsutils,jq,ripgrep,fd-find,tree,shellcheck - Links
/usr/local/bin/fdtofdfind(Ubuntu ships fd under the long name; everything expectsfd), system-wide like the other CLIs - Installs opt-in snap packages (
ubuntu_snaps) and applies opt-in kernel tuning (ubuntu_sysctl); both empty by default - Installs
yqfrom GitHub releases (theagentsrole adds the agent-motivated packages on top) - Registers every installed package (
ubuntu_system_packages+ubuntu_packages) in~/.versions.d/soversionsreports its version - Sets locale (default
en_US.UTF-8) - Adds the
versionalias
Variables
| Variable | Default | Description |
|---|---|---|
ubuntu_locale | en_US.UTF-8 | System locale |
ubuntu_system_packages | ca-certificates curl wget gnupg unzip dnsutils jq ripgrep fd-find tree shellcheck | Baseline packages installed before the tool roles run (TLS, signature verification, archives, search and lint) |
ubuntu_packages | (empty) | Additional packages to install via apt |
ubuntu_snaps | (empty) | Snap packages to install; each entry is a name or a mapping with name, classic (default false), and channel (default stable). Requires snapd |
ubuntu_sysctl | (empty) | Kernel sysctl settings (name → value) written to /etc/sysctl.d/60-dotpro.conf and applied immediately |
ubuntu_version_commands | (see defaults) | Per-package command for the ~/.versions.d/ version reporter; defaults to <package> --version, an empty string skips a package. Override from inventory (merges) for packages whose binary differs from the package name |
ubuntu_apt_cache_valid_time | 86400 | Seconds a normal apply trusts the apt cache before refreshing; --upgrade forces a refresh |
Examples
Install a desktop app set as snaps — a bare name for default confinement, the mapping form for classic-confinement snaps like an IDE:
yaml
ubuntu_snaps:
- slack
- chromium
- name: phpstorm
classic: trueRaise the file-watch ceiling IDEs and file watchers hit:
yaml
ubuntu_sysctl:
fs.inotify.max_user_watches: 524288Aliases
| Alias | Command | Description |
|---|---|---|
version | lsb_release -a | Show Ubuntu version |
The shared aliases and functions (system, home, header, kv, list, …) come from the unix role.