#! /usr/bin/bash set -euo pipefail IFS=$'\n\t' DEB_PKGS=( # keep-sorted start age alsa-utils audacity avahi-daemon awscli blueman bluez borgbackup build-essential cargo cargo-doc curl direnv emacs-mozc eza fcitx5-frontend-all fcitx5-mozc ffmpeg firefox-esr fluid-soundfont-gm foot fuzzel gdb gnumeric go-staticcheck gopls graphviz grim guile-3.0 htop imagemagick inkscape jq jupyter jupyter-notebook jupyterlab keepassxc libnss-mdns libyajl-doc libyajl2 lilypond linux-perf lshw magic-wormhole make markdown mesa-utils minicom mpv network-manager-applet network-manager-openvpn nmap ntfs-3g pipewire-audio pipx postfix pre-commit pulseaudio-utils python3-debugpy python3-poetry qtwayland5 rclone reuse ripgrep rr rsync rust-doc rust-llvm shellcheck slurp speedtest-cli sway sway-backgrounds swayidle swaylock syncthing thunderbolt-tools timidity transmission udisks2 unar unrar-free unzip wev wf-recorder wl-clipboard xdg-desktop-portal-wlr xournalpp yt-dlp zip # keep-sorted end ) META_PKGS=( # keep-sorted start fonts-noto fwupd golang podman-compose # keep-sorted end ) PIPX_PKGS=( # keep-sorted start python-lsp-server rshell ruff # keep-sorted end ) sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --yes "${DEB_PKGS[@]}" sudo DEBIAN_FRONTEND=noninteractive apt-get install --install-recommends --yes "${META_PKGS[@]}" if (( "${#PIPX_PKGS[@]}" != 0 )); then pipx install "${PIPX_PKGS[@]}" fi PYLSP_PLUGINS=( # keep-sorted start fs podman pydantic pylsp-mypy pylsp-rope pytest types-pyxdg # keep-sorted end ) pipx inject python-lsp-server "${PYLSP_PLUGINS[@]}"