ansible/roles/desktop-common/tasks/packages.yml
2020-10-10 00:48:03 -05:00

246 lines
7.8 KiB
YAML

#!/usr/bin/ansible-playbook
# vim:ft=ansible:
---
- name: Configure system packages
block:
- name: Enable i386 architecture
lineinfile:
dest: /var/lib/dpkg/arch
line: i386
create: yes
- name: Add repo keys from keyserver
apt_key:
keyserver: 'keyserver.ubuntu.com'
id: "{{ item }}"
loop:
- "3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF" # Monodevelop
- name: Add repo keys by URL
apt_key:
url: "{{ item }}"
loop:
- "https://packagecloud.io/slacktechnologies/slack/gpgkey" # Slack
- "https://syncthing.net/release-key.txt" # Syncthing
- "https://packages.riot.im/debian/riot-im-archive-keyring.gpg" # Element
- "https://download.spotify.com/debian/pubkey.gpg" # Spotify 1
- "https://download.spotify.com/debian/pubkey_0D811D58.gpg" # Spotify 2
- name: Add repos
apt_repository:
repo: "{{ item }}"
loop:
# Debs
- "deb https://packagecloud.io/slacktechnologies/slack/debian/ jessie main" # Slack
- "deb http://repository.spotify.com stable non-free" # Spotify
- "deb https://apt.syncthing.net/ syncthing stable" # Syncthing
- "deb https://download.mono-project.com/repo/ubuntu vs-bionic main" # Monodevelop
- "deb https://packages.riot.im/debian/ default main" # Element
# My PPA
#- "ppa:rehashedsalt/personal"
# First-party PPAs
- "ppa:phoerious/keepassxc" # KeepassXC
# Third-party PPAs
- "ppa:system76-dev/stable" # Love my lemp9
- "ppa:drewwalton19216801/dolphin-master-cosmic" # Because Dolphin doesn't update their shit
- "ppa:kgilmer/speed-ricer" # Rice rice rice
- "ppa:lutris-team/lutris" # Lutris is kickass
- name: Update and upgrade apt packages
apt:
upgrade: "yes"
update_cache: yes
# One day
cache_valid_time: 86400
- name: Install packages
apt:
name:
# Terminal packages
- adb
- bison
- build-essential
- cmake
- debhelper
- devscripts # Tons of cool shit in here, mostly for packaging tho
- dh-make
- earlyoom
- fastboot
- ffmpeg
- flex
- git
- glances # For temperature monitoring, mostly. It's pretty heavy
- imagemagick
- libinput-tools # Allows for libinput debugging
- lua-check # I am good ComputerCraft guy
- neofetch # I never use it but whatever I guess
- network-manager-openconnect
- network-manager-openvpn
- network-manager-vpnc # For default route configuration
- nmap # For those times when you wanna scan a guy
- npm # I'm sorry
- openjdk-8-jre # For Minecraft
- pbuilder # Deb creation tool that does it all in a container
- pwgen
- python3-appdirs
- python3-eyed3
- python3-pip
- python3-pyqt5
- python3-usb # fuselee-gelee
- python3-venv
- qt5-default # For Multimc, should be installed on Kubuntu by default regardless
- traceroute
- tree
- units # How many bytes are in a mile?
- vagrant
- vagrant-libvirt
- vim
- wamerican # Dictionaries because I have like two scripts that use them
- wamerican-large
- wamerican-huge
- wamerican-insane
- wine
- wine-binfmt
- xz-utils # For Ansible deb support
# Fonts
- fonts-fork-awesome
- fonts-inconsolata
- fonts-material-design-icons-iconfont
- fonts-noto
- fonts-roboto
# DE
- bspwm
- conky-all # Why this is in several packages is beyond me
- dunst
- hsetroot # Works around a bug with Compton and a gray root window
- i3lock # Don't actually use this anymore (wew ksmserver)
- ibus
- ibus-mozc # Jap
- kubuntu-desktop # Sanity
- mozc-utils-gui
- nitrogen
- papirus-icon-theme
- pavucontrol-qt
- picom
- polybar
- qt5ct
- xbacklight # This works on literally none of my machines but fuck it
# Desktop applications
- alsa-tools-gui # For reprobing my front jack, I guess??
- barrier # FOSS Synergy
- cantata # MPD client
- chromium-browser
- chromium-chromedriver # Because Selenium
- clonezilla
- dolphin-emu-master
- dolphin-plugins
- element-desktop
- filelight # Sweet disk usage util
- filezilla
- firefox
- g810-led # For Logitech peripherals
- gimp
- inkscape # I use it for like two things
- joy2key # Neat little wrapper to bind joypad keys to keyboard keys
- joystick
- kcolorchooser
- kde-config-plymouth # Realistically not required, but whatever
- kdenlive # For the one video I edit a year
- kdepim
- keepassxc
- krita # I don't ever end up using this, maybe I'll pick it up for spritework
- libnotify-bin # Used for several of my scripts
- libretro-desmume
- libretro-mgba
- libretro-mupen64plus
- libretro-snes9x
- lutris
- mesa-vulkan-drivers
- mono-complete # Initial installation of this package may take an eternity
- monodevelop
- mpv
- mupen64plus-qt
- nextcloud-desktop
- obs-studio
- plymouth-theme-spinner # Gives us the good UEFI logo bootup
- pulseeffects # I need to be an echoey boi
- q4wine
- qbittorrent
- rdesktop # CLI RDP client, works real nice
- redshift
- retroarch
- rofi
- scrot # For scripted screenshots
- slack-desktop
- spotify-client
- steam-installer
- syncthing-gtk
- telegram-desktop
- torbrowser-launcher # Sometimes it's bugged but it's still nice to have
- virt-manager
- vulkan-tools
- vulkan-utils
- winetricks
- xdotool
- xserver-xephyr
- zim
# Other architectures, misc
- "libgl1-mesa-dri:i386"
- "mesa-vulkan-drivers:i386"
# Games
- minetest
- name: Install System76-exclusive packages
apt:
name:
- firmware-manager
- kamoso # Camera util
- system76-acpi-dkms
- system76-dkms
- system76-firmware
- system76-io-dkms
- system76-power
when: ansible_system_vendor == "System76"
- name: Install Focal-exclusive desktop applications
apt:
name:
- piper # Peripheral LED management
when: ansible_distribution_release == "focal"
- name: Install packages without recommends
apt:
install_recommends: no
name:
- php # Dev stuff
- php-xml
- name: Install out-of-repo packages
apt:
deb: "{{ item }}"
loop:
- "https://dl.discordapp.net/apps/linux/0.0.12/discord-0.0.12.deb"
- "https://github.com/MultiMC/MultiMC5/releases/download/0.6.8/multimc_1.4-1.deb"
- "https://zoom.us/client/latest/zoom_amd64.deb"
# We ignore errors here in case we have a more up-to-date package on the target machine and/or face a URL timeout
ignore_errors: yes
- name: Install desktop applications through pip3
pip:
executable: "/usr/bin/pip3"
state: latest
name:
- pmbootstrap
- protontricks
- youtube-dl
# Just in case we have legacy apps floating around
- name: Remove Snap applications
snap:
name:
- discord
- pixelorama
- riot-web
- slack
- scrcpy
- sengi
- spotify
state: absent
- name: Remove desktop applications through APT
apt:
name:
- ktorrent
- mpd
- thunderbird
state: absent
become: yes