Debian / Ubuntu (apt)
Adds the Signal apt repo on amd64 (modern signed-by keyring in
/etc/apt/keyrings, not the deprecated apt-key), installs everything in
apt-packages.txt, and installs neovim/nvm/pyenv via their own
upstream installers since none of those are reliable apt packages;
lazygit/topgrade are apt-installed when a candidate exists and otherwise
fall back to an upstream tarball (lazygit) or pipx (topgrade — using the
pipx that apt already installed). Unavailable packages are reported and
skipped rather than failing the install.
zshitself is apt-installed when available, but on a derivative distro whosesources.listdoesn't carry it (seen on PikaOS), it's built from the upstream release tarball instead —build-essentialandlibncursesw5-devfromapt-packages.txtare the only extra dependencies it needs, and the resulting/usr/local/bin/zshis added to/etc/shellssochsh(below) still picks it up.- GUI apps live in
apt-packages-desktop.txtand are only installed when a display environment is detected. Force it either way withDOTFILES_DESKTOP=1/DOTFILES_DESKTOP=0. - Your login shell is switched to zsh only if it's listed in
/etc/shells; otherwise it says so and moves on.