#! /usr/bin/bash DEB_PKGS=( # keep-sorted start age alsa-utils audacity avahi-daemon black 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 gnumeric graphviz grim guile-3.0 htop imagemagick inkscape jq jupyter-notebook keepassxc libnss-mdns libyajl-doc libyajl2 lilypond magic-wormhole make markdown minicom mpv network-manager-openvpn nmap ntfs-3g pipewire-audio pipx postfix pre-commit pulseaudio-utils python3-poetry qtwayland5 rclone reuse ripgrep rsync rust-doc rust-llvm shellcheck slurp software-properties-common speedtest-cli sway sway-backgrounds swayidle swaylock syncthing 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 podman-compose # keep-sorted end ) PIPX_PKGS=( # keep-sorted start python-lsp-server rshell # 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 pydantic pylsp-mypy pylsp-rope python-lsp-ruff types-pyxdg # keep-sorted end ) pipx inject python-lsp-server "${PYLSP_PLUGINS[@]}"